gpt4 book ai didi

python - 在 Flask Python 中产生一个单独的执行线程(即向开发人员发送日志电子邮件)?

转载 作者:太空狗 更新时间:2023-10-30 00:51:55 24 4
gpt4 key购买 nike

我正在运行一个在 uwsgi 后面运行的 Flask webapp(2 个进程)。我的部分代码涉及对远程资源执行 ping 操作,查看它是否已被修改 (If-Modified-Since),如果修改,则在网络服务器上更新该资源的本地副本。

该更新还向我自己发送了一封关于差异的电子邮件。我担心这会花费很长时间,导致用户请求在发送电子邮件时超时。

Python 线程库是解决这个问题的正确方法吗? (生成一个线程并将电子邮件发送到那里?)这会完全干扰 uwsgi 的进程吗?

感谢您的帮助!

(附带说明:如果 2 个 uwsgi 进程都尝试更新本地副本上的资源,我也有点担心它们会撞头......我想知道线程模块的锁定功能是否正确也看看这个问题?)

编辑:澄清一下,我主要关心的是电子邮件任务是代码执行的一部分。它需要很长时间并在 return_template 调用之前运行,因此会延迟对用户的响应。给定 Flask/uwsgi 环境,Python 线程库是否是解决此问题的正确方法?

最佳答案

此类任务的最佳解决方案是使用 uWSGI 后台处理程序。如果你想在特定的时间间隔运行任务,你可以使用 @timer 装饰器并让后台处理程序努力工作:

from uwsgidecorators import *

#this will execute the_task() every 30 seconds in the spooler
@timer(30, target='spooler')
def the_task(signum)
do_the_long_task()

关于python - 在 Flask Python 中产生一个单独的执行线程(即向开发人员发送日志电子邮件)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7437899/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com