Redis
 sql >> Datenbank >  >> NoSQL >> Redis

Flask:Hintergrundarbeiterjob herumreichen (rq, redis)

Ich habe rq nicht verwendet vorher, aber ich sehe, dass ein Job einen .key hat Eigentum. Es könnte einfacher sein, diesen Hash in Ihrer Sitzung zu speichern. Dann können Sie den Job verwenden .fetch der Klasse -Methode, die selbst ein .refresh() aufruft und den Job an Sie zurückgeben. Lesen von .result() An diesem Punkt erhalten Sie den aktuellen Status des Auftrags.

Vielleicht so (ungetestet):

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