【问题标题】:Heroku CSV gets wiped after 1 day, all the data is lost.Heroku CSV 在 1 天后被擦除,所有数据都丢失了。
【发布时间】:2013-03-12 20:29:03
【问题描述】:

我有一个 Facebook 应用程序,部署在 Heroku 上。当有人填写表格时,此应用程序会将一些用户数据收集到 CSV 中。但是,我对这个 CSV 有疑问。它每天都会被彻底清除(只剩下标题)。

我将提供用于操作 CSV 的 PHP 代码:

这是我实际操作 CSV 并将数据写入其中的代码:

<?php
date_default_timezone_set('Europe/Bucharest');
$error = 0;
if($_GET["name"] == ""){
    $error = 2;
}
else if($_GET["email"] == ""){
    $error = 3;
}
else if(!filter_var($_GET["email"], FILTER_VALIDATE_EMAIL)){
    $error = 4;
}
if($error == 0){
$list = array($_GET["name"], $_GET["email"],date("d-m-Y H:i:s",time()));
$fp = fopen('users.csv', 'a');
fputcsv($fp, $list);
fclose($fp);
}
header( 'Location: index.php?signedrequest='.$_GET["signedrequest"].'&errors='.$error );

?> 

这是用于下载 CSV 的管理页面的代码:

<div id="admintab">
<p>
<iframe name="myframe_targ" style="display:none;"></iframe>
Download : <a href="users.csv" target="myframe_targ">users.csv</a>
</p>
</div>

我提到这个应用程序托管在 Heroku 上,自周一以来我没有向它推送任何数据。我最后的日志显示最后一次推送是在星期一 13:21。但是,我只能从今天开始以 CSV 格式查看数据。我也检查了其他日子,还有其他意见。

你有什么想法,为什么会这样? Heroku 或我的 PHP 代码有问题吗?

提前致谢!!

【问题讨论】:

  • 听起来您应该将数据存储在数据库中。
  • 将数据存储到数据库中会让我在 heroku 上花费一些钱,或者至少要确认我的付款方式,我不同意这样做。写入 CSV 有什么问题?
  • 我相信 Heroku 上的数据是暂时的。这就是他们扩展网络的方式。您的应用程序可能会在数十或数百台机器上进行配置,这些计算机可能会根据需要重新配置或移动。您没有拥有一台机器。
  • 顺便说一句,我在 Heroku 上运行 a site 并使用 MongoHQ 进行存储。我不为 Heroku 或 MongoHQ 支付任何费用,但我不记得是否必须输入信用卡信息。
  • 我是说你永远不能指望任何机器上的瞬态数据。它可以在任何时候出于任何原因在不通知的情况下移动。所以,是的,一定要试试更好的存储解决方案。

标签: php html facebook csv heroku


【解决方案1】:

Heroku 通过在其网络中可能数十或数百台服务器上同步您的代码来进行扩展。您不能依赖存储在单个实例上的临时数据在以后可用,因为处理请求的虚拟机可能每次都不同。你可以阅读更多关于它是如何工作的here

理想情况下,您应该为此任务使用专为长期存储而构建的存储机制。我用过MongoHQ 一点,效果很好(他们确实有免费套餐)。键/值存储,例如 Amazon SimpleDB 可能也很合适。

【讨论】:

    【解决方案2】:

    虽然您可以写入文件系统,但它会在扩展 dynos、重新启动 dynos、重新部署代码时丢失。 Heroku 每天都会循环使用 Dynos,因此这将是您失败的原因。

    【讨论】:

    • 感谢您的回答!已经有人向我解释过了。现在说得通了。我没有仔细阅读他们的文档。
    猜你喜欢
    • 1970-01-01
    • 2014-06-15
    • 2023-02-11
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    • 2015-09-06
    相关资源
    最近更新 更多