【发布时间】:2017-09-23 18:59:39
【问题描述】:
我在保持 queue:work 命令在我的服务器上运行时遇到问题。我尝试了 nohup,但是一旦我关闭终端(无论我尝试了什么,它每 5 分钟左右超时一次),该过程就会消失。
我想过在 cron 中运行一个脚本来启动 nohup 命令,但是它也在 jailshell 中运行,所以我无法查看该进程是否仍在从以前的 cron 运行,我不想要潜在的 20k 副本,因为它试图每分钟启动一次。
我也无权安装软件来安装 Supervisord。
那么,我可以使用哪些其他解决方案来确保它继续运行?
编辑我联系了我的主机的支持人员,而且看起来我没有真正的替代方案。我想我将不得不在 Linode 上设置这个项目,或者重做一些事情以不进行排队任务。
【问题讨论】:
-
这些天我不会为 Laravel 应用程序使用共享主机,而不是当你可以以类似的价格在 Digital Ocean 或 Linode 上获得 VPS 时。
-
我有一个转销商金额,因此在我的帐户上托管另一个网站不会产生额外费用。但是,是的,Laravel 足够复杂,可能值得专门做一些事情。
-
您可以切换到同步驱动程序,但这违背了首先要有队列的目的。
-
是的。我使用队列的主要目的是因为我正在向 pushover 发送消息,您需要限制发送它们的频率,所以这是我能想到的最佳方式。加上队列的其他好处。由于我正在使用它们,我已经排队了一些东西,所以如果我关闭排队,那么我必须改变一些东西。
-
我能想到的唯一其他解决方案是将队列工作程序移动到第三方服务 - 例如,使用 Amazon SQS 作为队列并让工作程序在 EC2 实例上运行,但这涉及无论如何都要为第三方服务付费,所以你最好还是坚持使用 VPS。
标签: laravel cron jail-shell