2016-12-26 127 views
0

我需要在cakephp中使用PHPExcel在Excel文件中导出大量数据。我的代码完美适用于小范围(最大约1000条记录),但它的数据大小超过1000条记录,然后nginx引擎说502坏的网关错误。因为它的执行时间太高。在cakephp中创建异步任务

现在我喜欢以异步方式完成此任务。一旦Excel生成完成,然后我需要通过电子邮件与下载链接通知管理员。

MY PAGE LINK

回答

1

创建一个新的模式,将表现为一个队列的出口。保存连续检索数据所需的信息,如: ID,请求,文件名,状态,创建,修改

然后在app/Console/Command/ExporterShell.php中创建一个Shell并设置一个高PHP执行时间为set_time_limit()。 REF:从队列表

  1. 读任何未处理的工作
  2. 的foreach,查询所有必要的数据做了“出口”
  3. 更新状态为“处理:CakePHP Shells

    脚本需要“

  4. ...并对它们进行处理,可能只有3个或更小的限制。
  5. 保存到您的excel文件并更新状态列“完整”,“错误”等...以防止下一次被轮询。
  6. 电子邮件收件人(我会保持一个日志这个地方的,太)

最后,它添加到/ crontab来运行它每隔10分钟或其他频率是合适的这样的: */10 * * * * root cd/var/www/html/project/app & &控制台/蛋糕出口商>> /var/log/ExporterShell.log

+0

对不起,迟到的response.shall我们有一个Skype的讨论? –

+0

如果您有其他问题,请在此处询问。 – devinstetler

+0

我想知道清楚..在这里我不能发布我的代码..只有...我也通过模态创建shell脚本..但它不会异步运行,仍然等待完成。 –