Quindi, in pratica, voglio creare un'applicazione a polling lungo che utilizza RQ su heroku. Ho dato un'occhiata a questa domanda Flask: passing around background worker job (rq, redis) ma non aiuta.Come ottenere Job con id in RQ python?
Questo è fondamentalmente quello che sto facendo.
@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)
Niente è di fantasia, in modo che quando la richiesta POST viene, in coda il lavoro e tornare indietro job_id all'utente diementicato, e quindi utente utilizzerà la chiave per mantenere il polling il risultato. Tuttavia, non riesco a farlo funzionare come questa linea Job().fetch(job_id)
rendimenti
NoRedisConnectionException: Could not resolve a Redis connection.
Qualsiasi aiuto sarebbe molto apprezzato.
È stato installato un redis adon e configurato correttamente? – CraigKerstiens
L'ho provato sul mio localhost. Funziona bene quando il lavoro è in coda. Ma quando provo a farlo Job(). Fetch (job_id) mi dà il mio errore. – toy