2017-09-06 48 views

回答

0

在你的控制器功能

use Symphony\Component\Process\Process; 
use Symfony\Component\Process\Exception\ProcessTimedOutException; 

try { 

$process = new Process(your artisan command, 
       null, 
       your environment, 
       [], 
       timeout(ex: 60000),[]); 

$process->run(); 

} catch (ProcessTimedOutException $e) { 

// you can show some flash message 

// OR 
return Response::json(['message' => 'some message'], 'desire response code'); 

} 

在你的情況試試這個,你需要做一些字體端砍,運行該控制器功能的AJAX,並提出一些負載。在你想要的時間過後,停止加載。

這不是一個最好的辦法,你不應該運行從控制器queue過程中,你應該讓你的服務器來做這個過程中通過使用supervisor, etc… https://laravel.com/docs/5.1/queues#supervisor-configuration

1

隊列允許你推遲的處理耗時任務,例如發送電子郵件,直到晚些時候。

因此,從控制器執行隊列工作者實際上否定了隊列的用途。解釋您的確切用例以提供更多詳細信息。

+0

使用Laravel 5.5在這裏..我想記錄工作(可讀的形式保存在工作表中可能是)信息**之前**它被刪除時,從工匠運行(使用shouldQueue使電子郵件作業)。爲此,我計劃從控制器執行作業隊列。我可能錯了,是否有方法記錄數據庫中的每個作業。我從隊列類方法中記錄失敗。我可能是錯的,歡迎任何幫助。 –

相關問題