私はユーザー入力を受け入れ、背中に多くの処理を行うAPIを持っています。私の質問は、入力検証後に応答コード(200)を返すべきか、入力処理(mysqlへの保存、入力の書式設定、redisへの保存など)が終了するまで待つべきですか?Python:応答コードを返すのはいつですか?
サンプルコードは:
# Should I wait for the greenlets to finish processing - which might take a long time?
@app.route('/messages', methods=['POST'])
def send_message():
user_input = flask.request.form.get('user_input')
if user_is_valid() and user_input_is_valid(user_input):
process_input = [gevent.spawn(format_input_and_save_to_mysql, user_input),
gevent.spawn(format_input_and_save_to_redis, user_input)]
gevent.join_all(process_input)
return 'Processing done', 200
return 'Unauthorized', 401
# Or should I return immediately even though the processing is still being done?
@app.route('/messages', methods=['POST'])
def send_message():
user_input = flask.request.form.get('user_input')
if user_is_valid() and user_input_is_valid(user_input):
gevent.spawn(format_input_and_save_to_mysql, user_input)
gevent.spawn(format_input_and_save_to_redis, user_input)
return 'Processing done', 200
return 'Unauthorized', 401
あなたのアプリケーションに適したものを実行する必要があります。正解はありません。 – davidism