2017-08-07 16 views
2

大規模なデータセットをJobに送信するときに、キューワーカーが突然終了します。Laravel queues gets "killed"

// $taskmetas is an array with other arrays, each subsequent array having 90 properties. 
$this->dispatch(new ProcessExcelData($excel_data, $taskmetas, $iteration, $storage_path)); 

ProcessExcelDataジョブ・クラスはbox/spoutパッケージを使用してExcelファイルを作成します。第一の例では

  • $taskmetasが880行を持っている - 突然

第一例終了 - - 第二例$taskmetasに細かい

  • の作品は、10,000行を持つ小型でキュー出力をデータセット:

    [email protected]:~/myapp.com$ php artisan queue:work --tries=1 
    [2017-08-07 02:44:48] Processing: App\Jobs\ProcessExcelData 
    [2017-08-07 02:44:48] Processed: App\Jobs\ProcessExcelData 
    

    第二の例 - 大規模なデータセットを持つキュー出力:

    [email protected]:~/myapp.com$ php artisan queue:work --tries=1 
    [2017-08-07 03:18:47] Processing: App\Jobs\ProcessExcelData 
    Killed 
    

    私はすべてのエラーメッセージを得ることはありません、ログは空で、仕事は他のエラーと同様failed_jobsテーブルには表示されません。制限時間は1時間に設定され、メモリ制限は2GBに設定されます。

    なぜ私のキューは突然終了しますか?

  • +0

    上述したように、我々は強制的にタイムアウトをオーバーライドしますか? –

    +0

    @DaveCarruthers nope – PeterInvincible

    答えて

    2

    タイムアウトを試すことができます。 たとえば、 PHPの職人キュー:デフォルト= 120

    を--timeout仕事、タイムアウトは60秒ですので、あなたが今までこの問題を解決するために管理しました

    +0

    制限時間は1時間に設定されています。ジョブは5分以内に終了します。 – PeterInvincible

    +0

    あなたの場合、コードに何らかの問題があるかもしれません。そうでなければメモリの問題です –

    関連する問題