-1
我正在使用Flask應用程序,它需要在2秒內返回HTTP 200 OK。但是我的應用程序在發送HTTP 200 OK之後必須啓動一些工作。在返回HTTP 200後執行函數在燒瓶中OK OK
@app.route('/events-slack', methods=['GET', 'POST'])
def events():
if(rq.is_json):
data = rq.get_json()
if(data['token']==token):
respond(data) #this function take more than 2 seconds
r_data = {
'OK' : True
}
else:
r_data = {
"error" : 'Token mismatch'
}
else:
r_data = {
"error" : 'Request was not JSON'
}
response = app.response_class(
status=200,
mimetype='application/json',
response=json.dumps(r_data)
)
return response
問題是響應函數採用2秒以上來處理它接收到的數據。我需要它先發送HTTP 200請求,然後開始工作。
編輯
下面是響應函數的代碼。
import requests
def respond(data):
if data['type'] == "event_callback":
event = data['event']
if event['type'] == 'message':
r_data = requests.post('URL', data = {'key' : 'data')
else:
r_data = {
"error" : 'Type not recognized'
}
return r_data
我什麼都聽不懂。什麼是2秒?爲什麼2秒? – Nabin
那麼,如果問題是響應(數據)需要超過2秒,我沒看到這個代碼將如何幫助我們檢查問題。您應該向我們顯示回覆的代碼。 – lapinkoira
您可以在retutn響應之前打開一個異步任務。更多信息:https://docs.python.org/3/library/asyncio-task.html –