|
|
1
2
您可以像线程池一样执行此操作。创建一个命令行PHP脚本来处理接收。它应该由一个shell脚本启动,该脚本在进程死亡时自动重新启动进程。如果shell脚本已经在运行,则不应启动该进程(使用$pid.running文件或类似文件)。让cron每1-10分钟运行几次。这样可以很好地处理接收问题。 我不会让cron触发Web请求,除非您的cron出于某种奇怪的原因在另一台服务器上。 另一种使用这种方法的方法是让一些反向过程创建数据,而一个Web用户在自然浏览站点时使用它。报告生成器可以这样工作。公司范围内的报告可供所有用户使用,但您不希望所有用户都生成此数据库/时间密集型报告。因此,您可以创建一个队列并一次处理一个队列,从而可以删除重复项。准备好后,所有用户都可以查看报告。 According to the docs 它看起来不像ZendDB甚至使用与其他ZendDB查询相同的连接。当然,找到答案的最好方法是做一个简单的测试。 编辑 cron中的多行用于并发性。每行代表池的一个工作人员。我不清楚,你不想把pid作为标识符,你想把它作为参数传递。
如果bash脚本发现$process.running文件退出,它将检查该文件。 否则:
这允许PHP脚本死亡,但不会导致池释放工作线程。 如果队列为空,则PHP脚本将立即退出,并由cron的nex调用再次启动。 |