我正在运行一个在uwsgi后面运行的Flask webapp(2个进程).我的代码的一部分涉及ping远程资源,查看它是否已被修改(If-Modified-Since),并在Web服务器上更新该资源的本地副本(如果已修改).
该更新还向我发送了差异的电子邮件.我担心这需要很长时间,导致用户请求在发送电子邮件时超时.
Python线程库是解决这个问题的正确方法吗?(产生一个线程并在那里发送电子邮件?)这会干扰uwsgi的进程吗?
谢谢您的帮助!
(旁注:如果他们都试图更新本地副本上的资源,我也有点担心2个uwsgi进程碰撞头...我想知道线程模块的锁定功能是否正确这个问题也是?)
编辑:澄清一下,我主要担心的是电子邮件任务是代码执行的一部分.它需要很长时间并在return_template呼叫之前运行,因此会阻止对用户的响应.考虑到Flask/uwsgi环境,Python线程库是否是解决此问题的正确方法?
我试图通过URL 将参数传递给这个CGI表单(http://www.westegg.com/inflation/),所以我不必手动输入它们,这样我就可以通过其他方式生成URL为了更快的使用.
以下是该网站的CGI表单代码:
<form action="infl.cgi" method="post">
Enter the amount of money: <input name="money" type="text" size="9">
<p>
Enter the initial year (1800-2008):
<input name="first" type="text" size="4" maxlength="4">
<p>
Enter the final year (1800-2008):
<input name="final" type="text" size="4" maxlength="4" value="2007">
<p>
<center>
<input type="submit" value="Submit">
</center>
</form>
Run Code Online (Sandbox Code Playgroud)
我试过通过"?"传递参数 和"&"语法,但这些都不起作用:
http://www.westegg.com/inflation/infl.cgi?money=1&first=1800&last=1900
http://www.westegg.com/inflation/infl.cgi?money="1.00"&first="1800"&last="1900"
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助 :)