python-3.x - Flask 应用程序结束时如何执行函数?
问题描述
我正在构建一个 Flask 应用程序,并且想知道当用户基本上在结束应用程序时单击“Ctrl + C 或 X”时,我如何告诉它执行一个功能。对于这个例子,假设我只是想让它打开一个文件并向它写“完成”。这可能吗?
解决方案
程序终止的方式是通过系统发送的信号。信号的两个示例是SIGKILL
对应于按下kill -9
和SIGINT
对应于按下ctrl + c
。
你有一个 Python 的内置库signals
,你可以在 Unix/Linux 中玩转信号。
只需使用导入库import signals
,然后编写一个简单的回调函数,该函数在收到注册信号时运行。
信号处理函数示例:
def receiveSignal(signalNumber, frame):
print('Received:', signalNumber)
return
注册信号示例
signal.signal(signal. SIGKILL, receiveSignal)
signal.signal(signal.SIGINT, receiveSignal)
现在,每当您的程序收到注册的信号时,receiveSignal
都会调用该函数,您可以处理写入文件然后退出那里的任务。
上面的例子取自 StackAbuse,你可以在这里找到完整的例子
推荐阅读
- r - 如何在R中将多列时间数据绘制为折线图?
- writing - Google Scholar 是否有可供我们在研究应用程序中使用的 API?
- android - NFC 实时权限 Android
- sql-server - 如何将 Spark 数据帧写入现有的 SQL Server 表?
- python - 将参数从 python 脚本传递到 Word 宏 VBA (pywintypes.com_error: (-2147352567, 'Exception occurred.')
- python - 在 python 读取主程序上的 RSS Flux 时列出超出范围的错误
- sql - 从 SQL Server 表的动态序列中获取数据
- sql-server - 如何发送有关在 sql server 的表中查找错误数据的电子邮件
- c - 排序和使用二分查找后的时间复杂度
- spring-boot - Spring starter security or spring cloud security 如何保护整个微服务架构?