2016-12-26 103 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腳本..但它不會異步運行,仍然等待完成。 –