Non ho usato rq
prima ma vedo che un lavoro ha un .key
proprietà. Potrebbe essere più facile archiviare quell'hash nella tua sessione. Quindi puoi utilizzare il Job
.fetch
della classe metodo che chiamerà esso stesso un .refresh()
e restituirti il lavoro. Leggere il .result()
a quel punto ti darebbe lo stato attuale del lavoro.
Forse così (non testato):
from rq.job import Job
@app.route('/make/')
def make():
job = q.enqueue(do_something, 'argument')
session['job'] = job.key
return 'Done'
@app.route('/get/')
def get():
try:
job = Job()
job.fetch(session['job'])
out = str(job.result)
except:
out = 'No result yet'
return out