优雅重启 django-q qcluster

Posted

技术标签:

【中文标题】优雅重启 django-q qcluster【英文标题】:Restarting django-q qcluster gracefully 【发布时间】:2021-09-18 09:16:21 【问题描述】:

我们如何才能优雅地重新启动 qcluster 以进行服务器更改?例如。我们使用 gunicorn 来运行 django 服务器,它可以让您优雅地重新启动工作人员而无需停机。如何在不影响任何正在进行的工作进程处理的情况下重新启动 qcluster 工作进程?谢谢。

【问题讨论】:

【参考方案1】:

我尝试使用kill -SIGHUB 优雅地重新启动 Django-Q,因为它是优雅地重新启动服务的约定,但它不起作用。我注意到 Django-Q 在收到 CTRL+C 命令时会优雅地重新启动,并从那里找到了解决方案。

# -2 is SIGINT. It acts like CTRL+C.
pkill -e -2 --full 'python manage.py qcluster';  (python manage.py qcluster &)

【讨论】:

“我注意到 Django-Q 在接收到 CTRL+C 时优雅地重新启动” - 你的意思是不是“我注意到 Django-Q 在接收到 CTRL+C 时优雅地停止”?这就是我在 MacOS 上看到的。 Ctrl-C 也会导致彻底关机。

以上是关于优雅重启 django-q qcluster的主要内容,如果未能解决你的问题,请参考以下文章

Django-q如何从代码中删除计划任务

带有 Amazon SQS 配置的 Django-q

django-q如何删除定时任务

为啥django-q会用箭头时间抛出异常

django-Q对象的使用

django-q 单个作业的多个 cron 表达式