16

ここで奇妙な問題。私はDjangoアプリケーションを開発してきましたが、現在Celeryを実装しようとしています。通常のタスクと定期的なタスクの両方をキューに入れる必要があります。celerydを正常に起動し、それを使用してタスクを実行できます(コマンドを使用して起動しますpython manage.py celeryd start --settings=settings --loglevel=INFO)。

Windowsでは、ビートモードを有効にする-beat/することはできません。-b別のサービスとしてcelerybeatを開始する必要があります(これはCeleryドキュメントのFAQセクションに記載されています)。これをコマンドラインに入力すると、次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が実際に起動することはありません。だから私は定期的なタスクを実行することはできません...何かアイデアはありますか?誰かが同様のエラーを強調した他のページを1つだけ見つけましたが、解決策は提供されませんでした。

さらに詳しい情報が必要な場合は、お知らせください。この件に関する情報が見つからないので困惑していて、今日は一日中この問題を解決しようとしています...ありがとうございます。

4

2 に答える 2

20

ファイルシステムでそのpidファイルを検索し、削除します。UNIXマシンでは、これは通常、プログラムが正しくシャットダウンされなかったことを意味します。タスクマネージャで実行されているかどうかを確認し、実行されている場合は強制終了して、そのファイルを削除する必要があります。

その後、再試行してください。

pidファイルが存在しない場合、それはおそらくUNIXから移植されたため、ソフトウェアに問題があることを意味しますか?

于 2012-01-03T00:34:47.817 に答える
17

Windows上のdjangoプロジェクトの場合、このファイルはすでにDjangoプロジェクトのルートに存在していました。そのファイルを削除すると、プロセスはエラーなしで実行されました。 ここに画像の説明を入力してください

別のPCからセロリビートを実行し、gitレポジトリをクラウドにプッシュしたため、「celerybeat.pid」はすでに存在していました。動作中のPCでリポジトリをプルしてプロセスを実行すると、別のPCによって以前に作成されたファイル「celerybeat.pid」を参照してエラーが発生しました。「celerybeat.pid」を削除すると機能しました。

于 2017-03-09T07:12:53.510 に答える