每当移动应用程序请求某些数据时,我都需要执行一项任务。用户不需要立即执行的任务,但可能需要在接下来的 2 分钟内完成。
我对 Python / web dev 还是很陌生,所以我不太确定如何完成这个。
我不希望用户等待执行的任务,它可能需要 30 秒,但我仍然希望它快 30 秒。
无论如何我可以发送响应,以便用户立即获得所需的信息,然后在发送 JSON 后立即执行任务。
是否可以在不使用 return 的情况下向请求数据的移动应用程序发送响应,以便该方法可以继续执行用户不需要等待的任务?
@app.route('/image/<image_id>/')
def images(image_id):
# get the resource (unnecessary code removed)
return Response(js, status=200, mimetype='application/json')
# once the JSON response is returned, do some action
# (what I would like to do somehow, but don't know how to get it to work
再三考虑,也许我需要以某种方式异步执行此操作,这样它就不会阻塞路由器(但它仍然需要在返回 JSON 后立即完成)
更新 - 回应一些答案
对于我执行此类任务,是否推荐/必须使用 Heroku 上的 Worker 服务器,或者是否有另一种更便宜的方法来执行此操作?