我坚持在Windows 7上运行芹菜3.1.17(后来在2013服务器上),使用redis作为后端。
在我的celery.py
文件中,我定义了一个带有一个计划任务的应用
app = Celery('myapp',
backend='redis://localhost',
broker='redis://localhost',
include=['tasks']
)
app.conf.update(
CELERYBEAT_SCHEDULE = {
'dumdum': {
'task': 'tasks.dumdum',
'schedule': timedelta(seconds=5),
}
}
)
任务是在文件中写一行
@app.task
def dumdum():
with open('c:/src/dumdum.txt','w') as f:
f.write('dumdum actually ran !')
从命令行运行节拍服务
(venv) celery beat -A tasks
celery beat v3.1.17 (Cipater) is starting.
__ - ... __ - _
Configuration ->
. broker -> redis://localhost:6379/1
. loader -> celery.loaders.app.AppLoader
. scheduler -> celery.beat.PersistentScheduler
. db -> celerybeat-schedule
. logfile -> [stderr]@%INFO
. maxinterval -> now (0s)
[2015-03-15 10:50:33,265: INFO/MainProcess] beat: Starting...
[2015-03-15 10:50:35,496: INFO/MainProcess] Scheduler: Sending due task dumdum (tasks.dumdum)
[2015-03-15 10:50:40,513: INFO/MainProcess] Scheduler: Sending due task dumdum (tasks.dumdum)
看起来很有希望,但却没有发生。没有任何东西写入文件。
2011年,celery documentation on runnig在Windows引用this article上播放。本文解释了如何在Windows上运行celeryd
作为调度程序任务。自celeryd
已被弃用,文章中所述的命令不再有效(没有celery.bin.celeryd
模块)。
那么,这里有什么解决方案?
感谢。
答案 0 :(得分:3)
我使用以下命令在Windows上运行celery beat:
python manage.py celery beat
按照以下安装步骤操作后:
它对我很有用!