我们需要分发软件,其中应该包含一个PHP脚本,将运行几分钟。因此,我正在寻找一种最佳的实践方法,在2017年做到这一点。
(请注意,我自己读过现有的博客文章和堆栈溢出问题,但找不到令人满意的答案)
也许有人知道像Symfony和Laravel这样的框架或者像Magento这样的网络商店是如何完成这些任务的?不过,我还是想知道如何在不使用框架或库的情况下,自己在普通PHP中完成这项工作。
发布于 2017-10-28 19:02:10
有许多解决办法:
最好的解决方案肯定是队列和cron,然后是PHP,其余的都是垃圾。
你绝对不可能在别人的服务器上运行,除非你做了一些在某一时刻无法工作的事情。
Sidenote:你说过你不想让图书馆自己去做,我给图书馆添加了链接,因为阅读它们可以让你更深入地了解这种技术,这些图书馆质量很高。
发布于 2017-10-29 20:47:37
如果您为Magento设置了一个常规的cron作业,则Magento只运行它。它有一个cron.sh,它每分钟运行一次,执行Magento队列中的作业。
任何通过http执行长期运行任务的解决方案都涉及到web服务器配置。
发布于 2017-12-20 18:10:36
最后,我认为有两种方法可以通过HTTP请求(不让用户等待很长时间)在PHP中启动长时间运行的进程:
proc_open()
一样使用symfony/process
。备注:
symfony/process
:在文档中,您可以看到可以将FPM和fastcgi_finish_request()
用于长期运行的任务。https://stackoverflow.com/questions/46991758
复制相似问题