Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 返回JSON后直接执行任务_Python_Json_Heroku_Flask - Fatal编程技术网

Python 返回JSON后直接执行任务

Python 返回JSON后直接执行任务,python,json,heroku,flask,Python,Json,Heroku,Flask,每当移动应用程序请求某些数据时,我都需要执行一项任务。用户不需要立即执行任务,但可能需要在接下来的2分钟内完成 我对Python/web开发还是相当陌生的,所以我不太确定如何实现这一点 我不希望用户等待执行任务,这可能需要30秒,但我还是希望能快30秒 我是否可以发送响应,以便用户立即获得所需信息,然后在发送JSON后立即执行任务 是否可以在不使用return的情况下向请求数据的移动应用程序发送响应,以便该方法可以继续执行用户不需要等待的任务? @app.route('/image/<im

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

我对Python/web开发还是相当陌生的,所以我不太确定如何实现这一点

我不希望用户等待执行任务,这可能需要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
@app.route('/image/'))
def图像(图像id):
#获取资源(删除不必要的代码)
返回响应(js,status=200,mimetype='application/json')
#返回JSON响应后,执行一些操作
#(我想做些什么,但不知道如何让它发挥作用

再想一想,也许我需要以某种方式异步执行此操作,这样它就不会阻塞路由器(但仍需要在返回JSON后立即执行)


更新-回应一些答案


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

是的,您需要一个任务队列。有几个选项

看看另一个问题:


当然,你的代码是错误的,因为一旦你
返回你所在函数的终止代码执行。

是的,你需要一个任务队列。有两个选项

看看另一个问题:


当然,您的代码是错误的,因为一旦
返回该函数的终止代码执行,您就可以创建第二个线程来执行额外的工作:

t = threading.Thread(target=some_function, args=[argument])
t.setDaemon(False)
t.start()

您还应该查看或

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

t = threading.Thread(target=some_function, args=[argument])
t.setDaemon(False)
t.start()

您还应该看看或

我意识到通常需要更多的代码,但我不知道如何做到这一点,因为直到现在,我一直认为JSON是在最后返回的,所以我从来没有学习过其他方法。希望您不要介意。:PI意识到通常需要更多的代码,但我不知道如何做到这一点,直到现在,我一直认为JSON是在最后返回的,所以我从来没有学过如何否则做。希望你不介意。:PHmm..我在Heroku上,所以我必须这样做,或者有没有其他方法你不需要工作服务器,只是“导入线程”使用上面的代码替换“some_function”和“arguement”。我还没有在heroku上尝试过,但文档说你可以生成线程:这对我来说似乎是一个很好的解决方案,+1现在,一旦我实现了所有功能,我会添加一个复选标记!嗯……我在heroku上,所以我必须要做这件事,还是有其他方法可以绕过你不需要工作服务器,只需“导入线程”并使用上面的代码替换“some_function”和“arguement”。我还没有在heroku上尝试过这一点,但文档说您可以生成线程:这对我来说似乎是一个很好的解决方案,+1现在,一旦我实现了所有功能,我将添加一个复选标记!