Laravel:使用 Beanstalkd 安排任务

Laravel: Schedule tasks using Beanstalkd

我的目标是每天午夜安排 运行 一项任务。我已经在我的应用程序中将 Beanstalkd 用于其他调度目的。但是 运行每天在特定的时间做一份工作似乎有点困难。

我在 global.php 文件中每天 00:00 将作业安排到 运行:

Queue::later($secondsBeforeMidNight, $jobToFire, array('data' => $data));

但是,Laravel 的问题在于每次收到请求时它都会启动整个应用程序。意思是,每次有新请求进入时都会安排上述任务。这将导致创建无数的工作等待在午夜被解雇。

有什么办法可以解决这个问题吗?

您应该为此使用 cron - 而不是 Beanstalkd。

对于 Laravel 4,最好的选择是使用 Dispatcher 包:https://github.com/Indatus/dispatcher

这将允许您在不同的时间安排特定的 artisan 命令到 运行。