返回JSON后直接执行任务

Gan*_*ham 0 python json heroku flask

每当移动应用程序请求某些数据时,我都需要执行任务.用户不需要立即执行任务,但可能在接下来的2分钟内需要它.

我仍然是Python/web dev的新手,所以我不太清楚如何实现这一目标.

不希望用户等待执行的任务,它可能需要30秒,但我还是要快30秒.

无论如何,我可以发送响应,以便用户立即获得所需信息,然后在发送JSON后立即执行任务.

是否可以在不使用返回的情况下向请求数据的移动应用程序发送响应,以便该方法可以继续执行用户无需等待的任务?

@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
Run Code Online (Sandbox Code Playgroud)

在第二个想法可能我需要以某种方式异步执行此操作,因此它不会阻止路由器(但它仍然需要在返回JSON后立即完成)


更新 - 回应一些答案

对我来说,执行这样的任务,Heroku推荐的工作服务器/必须还是有另一种更便宜的方法吗?

Ars*_*ngh 5

你可以创建第二个线程来完成额外的工作:

t = threading.Thread(target=some_function, args=[argument])
t.setDaemon(False)
t.start()
Run Code Online (Sandbox Code Playgroud)

你还应该看看芹菜python-rq