1

我正在构建一个应用程序,并尝试使用 Redis/python-rq/rq-scheduler 设置计划任务。

我可以很好地设置一个队列,如下所示:

from redis import Redis
from rq import Queue

rq = Queue(connection=Redis(host=BaseConfig.REDIS_HOST, port=BaseConfig.REDIS_PORT))

def hello_world():
    print("hello world")

@app.route("/queue/test", method=["GET", "POST"])
def test_queue():
    job = rq.enqueue_call(func=hello_world)
    return jsonify(job_id=job.id())

但是现在当我尝试设置计划任务时,根据此处的文档链接。像这样:

from datetime import timedelta

from redis import Redis
from rq import Queue
from rq_scheduler import Scheduler

rq = Queue(connection=Redis(host=BaseConfig.REDIS_HOST, port=BaseConfig.REDIS_PORT))
rqs = Scheduler(queue=rq)

def hello_world():
    print("hello world")

@app.route("/queue/test", method=["GET", "POST"])
def test_queue():
    job = rqs.enqueue_in(timedelta(seconds=30), func=hello_world)
    return jsonify(job_id=job.id())

我明白了

raise NoRedisConnectionException('Could not resolve a Redis connection')                                                                                                                                                                   
rq.connections.NoRedisConnectionException: Could not resolve a Redis connection

所有帮助将不胜感激。谢谢你。

4

1 回答 1

1

您需要在创建调度程序对象时传递连接

于 2020-04-07T09:45:05.663 回答