2017-08-22 101 views
0

我有問題如何檢查作業是否完成。我到處尋找,但我沒有看到Laravel/Lumen有什麼合作,我可能會錯過一些。示例代碼:Laravel JobId如何使用它來檢查作業是否完成

$job = ((new FooJob($data))); 
$jobID = dispatch($job); 

if(is_numeric($jobID)) { 
    while(elapsedTime < 10sec) { 
    CHECK_JOB_SOMEHOW_IF_IS_DONE !?! 
    } 
} 

我已經安裝了https://github.com/gilbitron/laravel-queue-monitor這實在是幫忙,以節省完成的作業的數據。在那裏我也沒有看到任何東西。

我有流明5.4框架。

回答

0

我推出這個解決方案:

當工作在工作結束時進行處理::我把槽Redis的一個標誌,對於這個特定的工作(設置redis鍵「job:[ID_JOB]」val 1)並且比請求部分我在彈出時檢查Redis鍵,就是這樣。它工作正常。

另一個解決方案是流明/ laravel的槽事件系統,做一個Redis標記,但是對於我想要的,它似乎有點矯枉過正。

0

您將需要根據文檔Queues - Lumen創建作業和作業失敗表。

將有必要創建queue.php文件應用程序/配置文件夾內,遵循文件模板:

return [ 
    'default' => env('QUEUE_DRIVER', 'sync'), 
    'connections' => [ 
     'sync' => [ 
      'driver' => 'sync', 
     ], 
     'database' => [ 
      'driver' => 'database', 
      'table' => 'jobs', 
      'queue' => 'default', 
      'retry_after' => 60, 
     ], 
    ], 
    'failed' => [ 
     'database' => env('QUEUE_CONNECTION', 'mysql'), 
     'table' => 'jobs_failed', 
    ], ]; 

創建表,使用方法派遣時後信息將被保存在作業表中。

要處理隊列中使用命令php artisan queue:work

+0

這實際上不是我有的問題,所有排隊的東西都在工作:)這只是一個檢查問題。 – xDan

相關問題