在窗户上运行芹菜击败 - 任务不可能?

时间:2015-03-15 09:08:45

标签: python windows celery celerybeat

我坚持在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模块)。

那么,这里有什么解决方案?

感谢。

1 个答案:

答案 0 :(得分:3)

我使用以下命令在Windows上运行celery beat:

python manage.py celery beat

按照以下安装步骤操作后:

Run celery beat on windows

它对我很有用!