我正在编写一个需要在后台执行 PHP 脚本的 Web 应用程序。队列的问题在于它一次只能处理一个。我的问题是,如何让 Beanstalk 同时处理更多作业,或者如何在后台执行我的脚本,直到用户手动停止它。我正在使用 Laravel 4,所以我可以使用所有这些方法。
提前致谢。
顺便说一句,API 也帮不了我。
<?php
class Workers {
public function fire($job, $data) {
$login = Login::find($data['id']);
if ($login->active == 0) {
$job->delete();
}
$job->release();
}
}
这就是我的脚本目前的样子。请注意,release()
而不是delete()
. 这就是它继续执行的原因。
我再次做了一些研究,发现背景工作者可能适合我。任何人都可以将我链接到有关如何在 Linux 上进行设置的教程以及关于后台工作软件的选项。Beanstalk 似乎没有提供这种选择。
我刚刚发现http://gearman.org/可能是一种可能性,但我不确定,因为我对工人不太了解。我还发现了这个http://kvz.io/blog/2009/01/09/create-daemons-in-php/看起来它可以完成这项工作。
每次需要运行脚本时是否可以有一个唯一的工作人员?一个完整的新实例?如果是这样,如何以及使用哪个程序/平台?
我要亲自感谢帮助我摆脱噩梦的人。当应用程序最终完成时,有无数人向我大喊大叫。赞赏,很多!