【问题标题】:Queue processing in background with Laravel 5.6 stops when terminal is closed当终端关闭时,Laravel 5.6 在后台的队列处理停止
【发布时间】:2019-11-15 07:47:20
【问题描述】:

即使在我关闭服务器终端后,我也使用以下命令将我的队列进程设置为永远执行。但是一旦我关闭终端,它就会停止。请帮我解决一下这个。如何让它始终在后台运行。 你可以看到我使用了所有 nohup 命令,但没有运气。

1) nohup php artisan queue:work --tries=1 </dev/null >/dev/null 2>&1 &
2) nohup php artisan queue:work --tries=1 >/dev/null 2>&1 &
3) nohup php artisan queue:work --daemon > /dev/null 2>&1 &
4) nohup php artisan queue:work > /dev/null 2>&1 &
5) nohup php artisan queue:work --tries=1
6) nohup php artisan queue:listen >/dev/null 2>&1 &

注意:我没有服务器的root 访问权限。我正在使用从 WHM 创建的用户。如果这是问题,请 IDK。

【问题讨论】:

  • 最好从crontab 运行它或创建systemd 的东西?
  • 当您遇到问题时,您不想丢弃所有可能出现在std-outstd-err 上的信息。我建议将该输出重定向到 tmp 文件,看看是否有任何有用的证据。你所拥有的似乎应该可以工作,(除了你的第 5 行没有背景,(错字?))。祝你好运。
  • @frakman1 这没有帮助,因为您可以看到我已经在使用 nohup 来解决问题。
  • @shellter,我不明白你对第 5 行的关注。

标签: linux laravel queue jobs nohup


【解决方案1】:

恐怕这是不可能的,当您停止命令或关闭连接时,进程将停止。

来自 Laravel 文档

保持队列:工作进程在后台永久运行, 您应该使用诸如 Supervisor 之类的流程监视器来确保 queue worker 不会停止运行。

https://laravel.com/docs/5.8/queues#supervisor-configuration

【讨论】:

  • 这应该可以,但它是一个快速解决方案,而不是一个好的长期解决方案。该进程可能会由于错误或服务器重新启动等而停止。
【解决方案2】:

转到CPanel -> Cron Jobs 页面

并通过添加如下命令来创建一个 cron 作业:

* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1

不要忘记将 /path-to-your-project 更改为您的项目文件夹

它将运行 laravel 预定的命令。

并将其放入app/Console/Kernel.php 文件中的schedule 方法。

$schedule->command('queue:work --stop-when-empty')->everyMinute()->withoutOverlapping();

【讨论】:

  • çok sağlıklı görünmüyor。 --once desen anlarım.. Ama yukarıdaki komut 她的 dakikayeni bir deaoman başlatacak。 1 saatte 60 实例 24 saatte bir boot edilen server düşün adam gün sonunda makinesinde 1440 实例 çalıştıracak..
  • @TeomanTıngır haklısın öyle bir 问题 var ona dikkat etmemişim。 Ama --once kuyruktan 1 工作 işleyip kapanıyor。 Bahsettiğin 问题 için --stop-when-empty seçeneğini ekleyerek yanıtı güncelliyorum。
  • cron ile çok sağlıklı değil açıkçası queue işlemlerini başlatmak。 doğrudan servis yazıp boot anında 工匠 komutu çalıştırmak daha sağlıklı。多用户目标 der geçersin 想要。 ama işte hostinglerde sıkıntı :))
猜你喜欢
  • 1970-01-01
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-06-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多