我正在學習Laravel框架,並且遇到了一些隊列問題。 Laravel提供了一個統一的API來處理隊列,我正在研究它。其中一個是Laravel提供的方法是Queue::later(DateTime|int $delay, string $job, mixed $data = '', string $queue = null);
隊列:: later()對Laravel不起作用
所以,我實現了我的作業類:
<?php
class SendEmail {
public function send($job, $data) {
Log::info('JOB: ' . $job->getName());
Log::info('DATA: ' . $data['message']);
}
}
上面,我登錄一個文件,接收到的參數。只是爲了知道它是否工作。我的控制器調用的工作這種方式使用隊列API:
<?php
class MyControllerController extends BaseController {
function index() {
LOG::debug('Index action STARTED');
$date = Carbon::now()->addMinutes(2);
Queue::later($date, '[email protected]', array('message' => 'MY MESSAGE!'));
$view = View::make('index');
LOG::debug('Index action FINISHED');
return $view;
}
}
就拿我使用Queue::later()
看看。我預計類別SendEmail
的方法send()
將在2分鐘後執行。 那麼,我完成了一個空白的視圖,並設置了路線。然後我向我的控制器發出GET請求,然後我去檢查日誌文件。
我看到這個,當我打開日誌文件:
[2014-10-02 16:23:11] production.DEBUG: Index action STARTED [] []
[2014-10-02 16:23:11] production.INFO: JOB: [] []
[2014-10-02 16:23:11] production.INFO: DATA: MY MESSAGE! [] []
[2014-10-02 16:23:11] production.DEBUG: Index action FINISHED [] []
一切在同一時間執行,包容性的工作。 Queue::later()
不會延遲執行。我認爲我的日誌文件應該是:
[2014-10-02 16:23:11] production.DEBUG: Index action STARTED [] []
[2014-10-02 16:23:11] production.DEBUG: Index action FINISHED [] []
[2014-10-02 16:25:11] production.INFO: JOB: [] []
[2014-10-02 16:25:11] production.INFO: DATA: MY MESSAGE! [] []
我的代碼有什麼問題?