为了最小化请求时间,我想在返回200到客户端之后执行该方法.
@app.route('/register', methods=['POST'])
def register():
#code and code
return 200
send_email_with_validation_url()
Run Code Online (Sandbox Code Playgroud)
我该怎么做?有线程吗?
你可以使用线程来完成它,但如果没有一些控制权,你可能最终会遇到很多线程扼杀资源.您也可能在没有意识到的情况下最终导致进程崩溃.
这是队列系统的工作.芹菜将是一个很好的选择.有点像:
from celery import Celery
app = Celery('tasks', broker='amqp://guest@localhost//')
@app.task
send_email_job(address):
send_email_with_validation_url()
@app.route('/register', methods=['POST'])
def register():
#code and code
send_email_job.delay(address)
return 200
Run Code Online (Sandbox Code Playgroud)
在这个例子中,send_email_job将使用给定的参数在后台(在不同的线程或进程中,甚至是机器中)使用给定的参数进行调度,您的服务器将立即返回.
| 归档时间: |
|
| 查看次数: |
487 次 |
| 最近记录: |