django - 有什么办法可以强制 django 在退出前运行一些整理代码?
问题描述
我正在用 django 运行一个服务器程序,我想在服务器运行之前和之后运行一些代码。我可以把这些代码放在哪里?
<run function a here>
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
^C
<run function b here>
我尝试过print('hello')
in app/__init__.py
,但发现它运行了两次。为什么?
解决方案
我确实认为运行 Django 应用程序runserver
或类似应用程序不是一个好主意。所以你的问题可能是“如何优雅地退出 Django App”。
gunicorn
通常我们在具有或类似 WSGI 应用程序的生产环境中运行 Django 。您将不知道它何时以及如何退出。
所以我们可以捕捉到信号SIG_INT
并SIG_TERM
优雅地退出。例如
import signal
def quit_gracefully():
print('quit')
signal.signal(signal.SIGINT, quit_gracefully)
signal.signal(signal.SIGTERM, quit_gracefully)
推荐阅读
- android - 处理 Android 协程中 withContext() 中抛出的异常
- excel - 在 POST 请求 VBA Excel 中发送数组字符串
- c - 为什么我在 C 中得到关于霍纳规则的错误输出
- python - 如何获取已安装应用程序的基本父文件夹?
- excel - 使用组织帐户从 Excel 访问 API Management API
- lua - 如何向 Tarantool 空间添加新字段
- jquery - 使用jquery将json数据加载到表中
- firebase - Flutter Firestore StreamTransformer DocumentSnapshot 错误
- utf-8 - 如何在 Rust 中逐行读取非 UTF8 文件
- java - 将简单的字符串数组从 REST 反序列化到列表
在java中