在我当前的任务中,当我选择大量记录然后更改其状态或重新分配它们时,系统可能会减慢到那一点,因此用户必须等待一段时间才能完成此操作。
那么有没有办法将此进程放入队列,以便进程在后台运行,用户可以执行其他任务。
先谢谢你。
答案 0 :(得分:2)
是的......看看Gearman:
http://gearman.org/index.php?id=getting_started
http://php.net/manual/en/book.gearman.php
Alternativley,如果你不喜欢它,我已经多次使用这个优秀的4部分教程的原则,效果很好:
答案 1 :(得分:0)
使用 j-query ajax方法,让用户无需执行任何操作即可等待。
答案 2 :(得分:0)
您可以选择
基本上,您可以运行任何MessageQ系统,然后使用STOMP(标准协议)在进程之间进行通信。
答案 3 :(得分:0)
是的,当然。如果你想保持php脚本在后台工作,让用户玩你的网站。您需要做的就是发送标题:
header("Connection: close");
header("Content-length: $size");
这是你在找什么?
答案 4 :(得分:0)
需要有关如何处理队列的更多信息,您是说正在处理的数据与第一个进程后运行的第二个进程无关?在这种情况下,我会将您的脚本作为
运行yourcommand > /dev/null 2>&1 &
这会让进程在后台运行。
在PHP的上下文中,如果它是你所追求的速度,我会检查PHP是否有足够的可用内存。如果是,我会将值保存在数组中并使用foreach循环来操作数据。通常这会更快。
需要更多信息。
哈