所以,基本上我想构建一个在heroku上使用RQ的长轮询应用程序。我看过这个问题Flask: passing around background worker job (rq, redis)但它没有帮助。
这基本上就是我正在做的。
@app.route('/do_something', methods=['POST'])
def get_keywords():
data_json = json.loads(request.data)
text = urllib.unquote(data_json["sentence"])
job = q.enqueue(keyword_extraction.extract, text)
return job.key
@app.route('/do_something/<job_id>', methods=['GET'])
def get_keywords_results(job_id):
job = Job().fetch(job_id)
if(not job.is_finished):
return "Not yet", 202
else:
return str(job.result)
没有什么花哨的,所以当 POST 请求到来时,它会将作业排队并立即将 job_id 返回给用户,然后用户将使用密钥继续轮询结果。Job().fetch(job_id)
但是,当这条线返回时,我似乎无法让它工作
NoRedisConnectionException: Could not resolve a Redis connection.
任何帮助将非常感激。