Celery + Django:无法在Windows 7上启动celerybeat
我最近在开发一个Django应用,现在想要添加Celery来处理后台任务。我需要同时有普通任务和定时任务被放入队列中。我可以顺利启动celeryd,并用它执行任务(我用命令 python manage.py celeryd start --settings=settings --loglevel=INFO
启动它)。
在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根本没有启动。所以我无法执行任何定时任务……有没有什么想法?我只找到过 一个页面,上面有人提到过类似的错误,但没有提供解决方案。
如果需要更多信息,请告诉我。我很困惑,因为我找不到关于这个问题的任何信息,今天整天都在尝试解决这个问题……谢谢。
2 个回答
在我的Django项目中,这个文件已经存在于项目的根目录下。我把那个文件删掉后,程序就顺利运行了,没有出现任何错误。
这个“celerybeat.pid”文件是因为我在另一台电脑上运行了celery beat,然后把代码上传到了云端。当我在我的工作电脑上拉取这个代码库并运行程序时,它提示我有错误,指的是之前在另一台电脑上创建的“celerybeat.pid”文件。删掉这个“celerybeat.pid”文件后,程序就正常工作了。
在你的文件系统中找到那个pid文件并把它删掉。在unix系统上,这通常意味着程序没有正确关闭。你应该先查看一下任务管理器,看看程序是否还在运行。如果在运行,就把它结束掉,然后再删除那个文件。
然后再试一次。
如果没有找到pid文件,那可能是软件在从unix移植过来的时候出现了问题。