django_rq作业未添加到队列中

时间:2017-09-15 23:02:39

标签: django docker redis django-rq

我正在使用:   django-rq:0.9.6   rq_scheduler:0.6.1

我是docker和django_rq的新手。

我遇到的问题是,我的工作没有执行或进入队列。

搬运工-compose.yml

redis:
    container_name: projapi-redis
    restart: always
    image: redis:latest
    ports:
      - '6379:6379'

rq:
    container_name: projapi-rq
    build: .
    command: python manage.py rqworker default
    volumes:
      - .:/src
    links:
      - redis

  rqscheduler:
    container_name: projapi-rqscheduler
    build: .
    command: python manage.py rqscheduler
    volumes:
      - .:/src
    links:
      - redis

settings.py

RQ_QUEUES = {
    'default': {
        'URL': 'redis://redis/0',
    }
}

在python shell中,我运行了:do_task.delay()并且RQ Queues的已完成作业数量大幅增加。当我跑:scheduler.schedule(datetime.utcnow(), 'do_task', interval=20)时,我没有得到任何回复。

tasks.py

from django_rq import job, get_scheduler
from datetime import datetime


scheduler = get_scheduler()


@job
def do_delay_task():
    return 'do_delay_task'


@job
def do_task():
    return 'do a task'


do_delay_task.delay()
scheduler.schedule(datetime.utcnow(), 'do_task', interval=2000)

1 个答案:

答案 0 :(得分:1)

这是定期任务运行,您忘记运行它:

scheduler.run()

还考虑使用此模块: https://github.com/rq/rq-scheduler