Skip to main content
 首页 » 编程设计

python之在客户请求后运行方法

2025年05月04日35artech

为了尽量减少请求时间,我想在向客户端返回 200 之后执行该方法。

@app.route('/register', methods=['POST']) 
def register(): 
      #code and code 
      return 200 
      send_email_with_validation_url() 

我该怎么做?用线程?

请您参考如下方法:

您可以使用线程来做到这一点,但如果没有一些控制,您最终可能会遇到大量线程阻塞资源的情况。您还可能在不知不觉中导致进程崩溃。

这是队列系统的工作。 Celery会很合适。类似的东西:

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_job 将使用给定的参数安排在后台运行(在不同的线程或进程中,甚至是机器中),您的服务器将立即返回。