私は現在のルートを持っています
@app.route('/as/<keyword>', methods=['GET'])
@cache.memoize(timeout = 30 * 24 * 60 * 60)
def auto_suggest(keyword):
job = q.enqueue(find_keyword, keyword, timeout = 60 * 60)
while not job.result:
time.sleep(1)
return jsonify(word=job.result)
これをローカルで実行すると、タイムアウトしないため正常に動作します。関数が実行された後、結果がキャッシュに保存され、その後のリロード時に即座にロードされます。しかし、ルートを実行するときにサーバーに配置すると、タイムアウトになります。
タイムアウト後にタスクが完了しても、関数をリロードすると、キャッシュから呼び出す代わりにタスクが再実行されます。
これを行うべき別の方法はありますか?