为了账号安全,请及时绑定邮箱和手机立即绑定

FLASK-RQ2 如何使用作业装饰器调用函数

FLASK-RQ2 如何使用作业装饰器调用函数

慕盖茨4494581 2022-06-14 15:30:26
您好,我是 Redis 和 Redis 队列的新手,我正在尝试使用 Flask-RQ2 库来执行一个函数,但是当我将我的函数添加到队列中时,我的函数没有执行查看Flask-RQ2它包含一个可调用的,所以为什么是我的功能未执行from flask import Flaskfrom flask_rq2 import RQapp = Flask(__name__)app.config['RQ_REDIS_URL'] = 'redis://127.0.0.1:6379/0'rq = RQ(app)@rq.jobdef foo(a,b):    print(a+b)    return a + b;@app.route('/')def index():    job = foo.queue(5,9)    print(foo.queue(8,8))    return 'Job queued!'if __name__ == "__main__":    app.run(port=5000, debug=True)这是 Redis 的输出1570238667.183464 [0 127.0.0.1:64377] "MULTI"1570238667.183506 [0 127.0.0.1:64377] "SADD" "rq:queues" "rq:queue:default"1570238667.183522 [0 127.0.0.1:64377] "HSET" "rq:job:db248b95-64bd-4300-b562-4781a7136e3c" "status" "queued"1570238667.183547 [0 127.0.0.1:64377] "HMSET" "rq:job:db248b95-64bd-4300-b562-4781a7136e3c" "created_at" "2019-10-05T01:24:27.181463Z" "data" "x\x9ck`\x99*\xc3\x00\x01\x1a=<\xf1\xf1\xb9\x89\x99y\xf1\xf1zi\xf9\xf9S\xfc\xbcY\xbd9\xdb\xa6\xd4N)\x99\xa2\a\x00\xbbl\x0bp" "origin" "default" "description" "__main__.foo(5, 9)" "enqueued_at" "2019-10-05T01:24:27.182076Z" "timeout" "180" "result_ttl" "500" "status" "queued"1570238667.183641 [0 127.0.0.1:64377] "RPUSH" "rq:queue:default" "db248b95-64bd-4300-b562-4781a7136e3c"1570238667.183672 [0 127.0.0.1:64377] "EXEC"
查看完整描述

1 回答

?
眼眸繁星

TA贡献1873条经验 获得超9个赞

您必须实际启动一个工人来运行这些作业。


https://flask-rq2.readthedocs.io/en/latest/#get-worker


# Creates a worker that handle jobs in ``default`` queue.

default_worker = rq.get_worker()

default_worker.work(burst=True)


# Creates a worker that handle jobs in both ``simple`` and ``low`` queues.

low_n_simple_worker = rq.get_worker('low', 'simple')

low_n_simple_worker.work(burst=True)

第一个示例应该适用于您的情况。如果你有一个 manage.py,你可以将它写入一个管理器命令并从那里运行它。


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 219 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号