我正在学习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! [] []
我的代码有什么问题?