【发布时间】:2015-04-02 20:25:06
【问题描述】:
我正在尝试设置队列用于日志存储、电子邮件发送和其他任务。
我决定使用 beanstalkd 和 supervisor 来控制作业队列的执行。我用 composer 安装了 pda/pheanstalk ~2.0,在 app/config/queue.php 上进行了正确的设置,编写了我的 Queue 类并尝试执行任务。
这是一个例子,它是一个登录日志:
Auth::attempt(array(
'email' => $email,
'password' => $password
));
if (Auth::check()) {
$debounce = Carbon::now()->addSeconds(10);
Queue::later($debounce, 'SaveAcessLog', array('user' => Auth::id(), 'ip' => Request::getClientIp()));
}
所以对于 supervisord,我关注了 this tutorial。安装后,我按照每个步骤操作并确保使laravel_queue.conf 和run_queue.sh 文件可执行。
问题是我无法执行任何任务。当我测试sudo supervisorctl 时,我得到:
laravel_queue FATAL Exited too quickly (process log may have details)
访问 /var/log/supervisor/supervisord.log 处的 supervisord 日志文件显示:
2015-04-02 20:16:57,251 INFO supervisord started with pid 1269
2015-04-02 20:16:58,254 INFO spawned: 'laravel_queue' with pid 1316
2015-04-02 20:16:58,277 INFO exited: laravel_queue (exit status 127; not expected)
2015-04-02 20:16:59,279 INFO spawned: 'laravel_queue' with pid 1525
2015-04-02 20:16:59,287 INFO exited: laravel_queue (exit status 127; not expected)
2015-04-02 20:17:01,294 INFO spawned: 'laravel_queue' with pid 1753
2015-04-02 20:17:01,303 INFO exited: laravel_queue (exit status 127; not expected)
2015-04-02 20:17:04,658 INFO spawned: 'laravel_queue' with pid 1808
2015-04-02 20:17:04,668 INFO exited: laravel_queue (exit status 127; not expected)
2015-04-02 20:17:05,669 INFO gave up: laravel_queue entered FATAL state, too many start retries too quickly
所以,如果我尝试php artisan queue:work,任务将被执行!我的 supervisord 设置缺少什么?
注意
我愿意使用与 supervisord 不同的东西,以防它更简单或更高效。
【问题讨论】:
-
我也有同样的问题...有什么解决办法吗?
-
我当时真的做不到,我会再试一次,如果成功了告诉你,同样,如果你得到它,请告诉我!
标签: php laravel supervisord