烧瓶芹菜redis不返回值



尝试学习如何实现芹菜。我有一个工作的例子,我做一个redis-cli监视器,我看到它得到的值,并返回到浏览器,但当我把例子改变为我自己的东西,我看到它给了我一个关键,但当我试图查看关键的结果,期望它打印"testing123",它挂起和redis-cli监视器显示无尽的"得到的芹菜任务。

工作……

celery = make_celery(app)
@celery.task(name="tasks.add")
def add(x, y):
    return x + y
@app.route("/test")
def hello_world(x=16, y=16):
    x = int(request.args.get("x", x))
    y = int(request.args.get("y", y))
    res = add.apply_async((x, y))
    context = {"id": res.task_id, "x": x, "y": y}
    result = "add((x){}, (y){})".format(context['x'], context['y'])
    goto = "{}".format(context['id'])
    return jsonify(result=result, goto=goto)
@app.route("/test/result/<task_id>")
def show_result(task_id):
    retval = add.AsyncResult(task_id).get(timeout=1.0)
    return repr(retval)

不工作…

@celery.task(name="tasks.yieldsomething")
def yieldsomething():
    a = 'test123'
    return a

@app.route("/yield")
def helloworld2():
    res = yieldsomething.apply_async()
    return res.task_id

@app.route("/yield/result/<task_id2>")
def show_result2(task_id2):
    aretval = yieldsomething.AsyncResult(task_id2).get()
    return repr(aretval)

找到我的问题了,芹菜不再在后台运行了。重新启动后,它可以正常工作。

相关内容

  • 没有找到相关文章

最新更新