Python 在客户端请求后运行方法
为了减少请求时间,我希望在返回200到客户机后执行该方法Python 在客户端请求后运行方法,python,flask,Python,Flask,为了减少请求时间,我希望在返回200到客户机后执行该方法 @app.route('/register', methods=['POST']) def register(): #code and code return 200 send_email_with_validation_url() 我怎么做?使用线程?您可以使用线程来完成,但是如果没有一些控制,您最终可能会遇到大量线程阻塞资源。您还可能在不知不觉中导致进程崩溃 这是队列系统的作业。很合适。大致如下:
@app.route('/register', methods=['POST'])
def register():
#code and code
return 200
send_email_with_validation_url()
我怎么做?使用线程?您可以使用线程来完成,但是如果没有一些控制,您最终可能会遇到大量线程阻塞资源。您还可能在不知不觉中导致进程崩溃 这是队列系统的作业。很合适。大致如下:
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
在本例中,send_email_作业将被安排在不同的线程、进程甚至机器中后台运行,如果您希望使用给定的参数,您的服务器将立即返回。您可以使用线程执行此操作,但如果没有一些控制,您可能会导致大量线程阻塞资源。您还可能在不知不觉中导致进程崩溃 这是队列系统的作业。很合适。大致如下:
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
在本例中,send_email_作业将被安排在不同的线程、进程甚至机器中后台运行,如果您希望使用给定的参数,您的服务器将立即返回。芹菜很好,但如果任务不重要,asyncio将是一个很好的探索选项,请参见芹菜很好,但如果任务不重要,asyncio将是一个很好的探索选择,请参见和after\u请求?无法处理?它将在请求送达后运行。请参阅我的edit@Urbester文档中指出,在所有请求上执行_请求后,该解决方案是异步的?还是会阻止我的请求?这是不对称的。它不会阻塞。看一看芹菜的文件,还有你的要求?无法处理?它将在请求送达后运行。请参阅我的edit@Urbester文档中指出,在所有请求上执行_请求后,该解决方案是异步的?还是会阻止我的请求?这是不对称的。它不会阻塞。看一看芹菜。