您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

Django框架-是否存在可以订阅的关闭事件?

Django框架-是否存在可以订阅的关闭事件?

我不知道关闭事件,但是您可以创建一个

用户按下Ctrl-C时,SIGINT信号将发送到Python进程。从wsgi.py文件中设置信号处理程序以捕获SIGINT并将其转发到程序。

wsgi.py:

...

import signal
signal.signal(signal.SIGINT, my_signal_handler)

您甚至可以将信号转发到Django信号:

my_django_shutdown_signal = django.dispatch.Signal()

def _forward_to_django_shutdown_signal(signal, frame):
    my_django_shutdown_signal.send('system')
    sys.exit(0)   # So runserver does try to exit
signal.signal(signal.SIGINT, _forward_to_django_shutdown_signal)

由于signal只能从主线程调用,因此不适用于runserver。使用该--noreload选项调用runserver ,或切换到gunicorn。

Go 2022/1/1 18:47:16 有484人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶