芹菜+ Django:无法在Windows 7上启动celerybeat

问题描述:

奇怪的问题在这里。我一直在开发一个Django应用程序,现在我正试图实现Celery。我需要正常任务和周期性任务排队。我可以很好地启动celeryd,并使用它执行任务(我从命令python manage.py celeryd start --settings=settings --loglevel=INFO开始)。芹菜+ Django:无法在Windows 7上启动celerybeat

在Windows上,您不能执行-beat/-b以启用节拍模式;您需要启动celerybeat作为一项单独的服务(这在Celery文档的常见问题部分有说明)。如果我键入命令行本 - python manage.py celerybeat -s djcelery.schedulers.DatabaseScheduler --settings=settings --loglevel=INFO - 我得到一个错误这样的:

[2012-01-02 19:06:52,009: WARNING/MainProcess] ERROR: Pidfile (celerybeat.pid) a 
lready exists. 
Seems we're already running? (PID: 2364) 
[2012-01-02 19:06:52,012: INFO/MainProcess] process shutting down 

和celerybeat从来没有真正开始。所以我不能执行任何周期性任务...任何想法?我只发现one other page,有人强调了类似的错误,但没有提供解决方案。

如果有任何进一步的信息需要,请让我知道。我很困惑,因为我找不到关于这个问题的任何信息,我今天一直在努力解决这个问题......谢谢。

在您的文件系统中搜索该pid文件并将其删除。在unix机器上通常意味着程序没有正确关闭。你应该检查它是否已经在任务管理器中运行,如果是的话就杀了它,并删除该文件。

然后再试一次。

如果没有pid文件存在,那可能意味着软件有问题,因为它可能从unix移植过来?

+1

我手动停止了RabbitMQ服务,找到并删除了'celerybeat.pid',然后启动了RabbitMQ备份 - 并且它现在可以工作。非常感谢,我不知道为什么我自己没有尝试过......我想我只是太胆小。 对于任何想要避免这种不便的人 - 确保在关闭命令提示符前始终键盘中断celeryd和celerybeat! – hangtwenty 2012-01-03 01:59:23

在我的Windows上的django项目的情况下,这个文件已经存在于Django项目的根目录中。我删除了该文件,并且该进程没有任何错误地运行。 enter image description here

“celerybeat.pid”已经存在,因为我从另一台PC上运行了芹菜拍,并将git仓库推到了云端。当我在我的工作PC上拉回购软件并运行该过程时,它给了我错误,指向另一台PC早期创建的文件“celerybeat.pid”。删除“celerybeat.pid”使它工作。