16

奇怪的问题在这里。我一直在开发一个 Django 应用程序,现在我正在尝试实现 Celery。我需要对正常任务和定期任务进行排队。我可以很好地启动 celeryd,并用它执行任务(我用 command 启动它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 从未真正启动。所以我不能执行任何周期性任务......有什么想法吗?我只发现另一个页面有人突出显示了类似的错误,但没有提供解决方案。

如果需要任何进一步的信息,请告诉我。我很困惑,因为我找不到关于这个主题的任何信息,而且我今天整天都在尝试解决这个问题......谢谢。

4

2 回答 2

20

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

然后再试一次。

如果不存在 pid 文件,这可能意味着软件存在问题,因为它可能是从 unix 移植的?

于 2012-01-03T00:34:47.817 回答
17

在 Windows 上的 django 项目中,这个文件已经存在于 Django 项目的根目录中。我删除了该文件,该过程运行没有任何错误。 在此处输入图像描述

“celerybeat.pid”已经存在,因为我从另一台 PC 运行 celery beat 并将 git repo 推送到云端。当我在我的工作 PC 上提取 repo 并运行该过程时,它给了我一个错误,指的是另一台 PC 之前创建的文件“celerybeat.pid”。删除“celerybeat.pid”使其工作。

于 2017-03-09T07:12:53.510 回答