我正在尝试使用RedisToGo在Heroku上使用django-rq运行rqscheduler。我已经按照自述文件(https://github.com/ui/django-rq)中的说明实现了django-rq。

我有一个可以启动rqworker的工作程序,另一个可以使用自述文件中建议的管理命令来启动rqscheduler的工作程序。 rqworker成功启动,但是我继续使用rqscheduler遇到此错误:

redis.exceptions.ConnectionError: Error 111 connecting to localhost:6379. Connection refused.

在我的设置中,我的Redis队列具有以下配置:
RQ_QUEUES = {
'default': {
    'HOST': 'localhost',
    'PORT': 6379,
    'DB': 0,
    'PASSWORD': '*****',
    'DEFAULT_TIMEOUT': 500,
},
'high': {
    'URL': os.getenv('REDISTOGO_URL', 'redis://localhost:6379/0'), # If you're on Heroku
    'DEFAULT_TIMEOUT': 500,
},
'low': {
    'HOST': 'localhost',
    'PORT': 6379,
    'DB': 0,
}
}

我的Procfile中有这个:
web: gunicorn app.wsgi --log-file -
worker: python manage.py rqworker high
scheduler: python manage.py rqscheduler

对为什么会发生这种情况有任何想法吗?

最佳答案

如果这与任何人都有关,则对问题进行简单的回答。像这样运行调度程序管理命令时,请使用参数--queue:

python manage.py rqscheduler --queue high

10-06 14:21