【发布时间】:2013-10-16 21:32:44
【问题描述】:
我正在编写一个需要在后台执行 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/,它看起来可以完成这项工作。
是否可以在每次需要运行脚本时都有一个唯一的工作人员?一个完整的新实例?如果是这样,如何以及使用哪个程序/平台?
我要亲自感谢帮助我摆脱噩梦的人。当应用程序最终完成时,有无数人向我大喊大叫。非常感谢!
【问题讨论】:
-
你需要对我说得更具体一些,告诉我们你想要做什么,显示一些代码,以便我们为你提供帮助。
-
它可以去任何地方,见PSR-0 autoloading。可能你想create your own application library 来容纳你的应用程序逻辑。
-
我编辑了问题以使其更加清晰和准确。
put on hold as too broad -
希望大家都清楚吗?
标签: php background laravel gearman worker