我正在开发一个PHP脚本,它使用不同的参数实例化同一个类的三个对象。这些对象反过来运行无限持续时间的方法(如Cron Job),因此下一行或第二行永远不会开始。
所以,如果我有
$a = new CronJob('Listing', '2010-04-01T00:00:01', '2010-04-01T00:30:01', 'A', 'BUSO');
$s = new CronJob('Listing', '2010-04-01T00:00:01', '2010-04-01T00:30:01', 'S', 'BUSO');
$p = new CronJob('Listing', '2010-04-01T00:00:01', '2010-04-01T00:30:01', 'P', 'BUSO');
由于$s
无限期运行, $a
永远不会被执行
我该如何解决这个问题?我想过用不同的脚本运行它们但是我不想让3 * (#object types)
同时运行它们。
答案 0 :(得分:1)
老实说,你最好的选择是制作单独的cron作业。 PHP本身并不支持多线程,并且许多黑客攻击它的工作成本很高。
看看这个堆栈溢出问题:How can one use multi threading in PHP applications
<强>更新强>
也希望将这个想法传递给Gearman。如果您可以添加外部扩展,请下载PECL包并进行安装。您将需要本地系统上的齿轮箱。
答案 1 :(得分:0)
您考虑过PHP threading吗?
这是关于PHP threading issues的另一个SO讨论。