我正在运行一个在 uwsgi(2 个进程)后面运行的 Flask webapp。我的代码的一部分涉及 ping 远程资源,查看它是否已被修改 ( If-Modified-Since
),如果已修改,则在网络服务器上更新该资源的本地副本。
该更新还向我自己发送了差异的电子邮件。我担心这需要很长时间,导致用户请求在发送电子邮件时超时。
Python 线程库是解决这个问题的正确方法吗?(产生一个线程并在那里发送电子邮件?)这会干扰 uwsgi 的进程吗?
谢谢您的帮助!
(附带说明:如果两个 uwsgi 进程都尝试更新本地副本上的资源,我也有点担心它们会碰头……我想知道线程模块的锁定功能是否正确也有这个问题?)
编辑:澄清一下,我主要关心的是电子邮件任务是代码执行的一部分。它需要很长时间并且在return_template
调用之前运行,因此会阻止对用户的响应。考虑到 Flask/uwsgi 环境,Python 线程库是解决这个问题的正确方法吗?