我的目标是每天午夜安排并运行一项任务。我已经在应用程序中使用Beanstalkd进行其他调度。但是,每天在特定的时间做一份工作似乎有点困难。
我在global.php
文件中安排每天00:00运行作业
Queue::later($secondsBeforeMidNight, $jobToFire, array('data' => $data));
然而,Laravel的特点是,每次收到请求时,它都会启动整个应用程序。这意味着,每次收到新的请求时,都会安排上述任务。这将导致在午夜产生无数等待解雇的工作。
有什么办法解决这个问题吗?
您应该为此使用cron
,而不是Beanstalkd。
对于Laravel 4,最好的选择是使用Dispatcher软件包:https://github.com/Indatus/dispatcher
这将允许您安排特定的手工命令在不同的时间运行。