私はmod_wsgiデーモンプロセスを使ってテスト用のDjangoサイトを持っており、連絡フォームを電子メールで送り、スーパーバイザーをインストールする簡単なセラータスクを設定しました。スーパーバイザでUbuntuでCeleryタスクを実行しています
私はDjangoコードが正しいことを知っています。
問題は、私がフォームを送信すると、最初のメッセージが1つしかないということです。連絡フォームのその後の完了は、全くメッセージを送信しません。
私のサーバには、Djangoサーバを使用する(つまりmod_wsgiを使用していない)スーパーバイザタスクを実行している別のテストサイトがあります。私はここで
sudo supervisorctl status
をすれば、私の仕事の両方が細かい実行されて、私はその上に説明しましたタスクのための私のconfファイルは、この例では、ユーザがMYUSERと呼ばれる
/etc/supervisor/conf.d
に保存されている
[program:test_project]
command=/home/myuser/virtualenvs/test_project_env/bin/celery -A test_project worker --loglevel=INFO --concurrency=10 -n [email protected]%%h
directory=/home/myuser/djangoprojects/test_project
user=myuser
numprocs=1
stdout_logfile=/var/log/celery/test_project.out.log
stderr_logfile=/var/log/celery/test_project.err.log
autostart=true
autorestart=true
startsecs=10
; Need to wait for currently executing tasks to finish at shutdown.
; Increase this if you have very long running tasks.
stopwaitsecs = 600
stopasgroup=true
; Set Celery priority higher than default (999)
; so, if rabbitmq is supervised, it will start first.
priority=1000
私の他のテストサイトでは、コマンドとしてこのセットを持っている - worker1 @ %%時間
command=/home/myuser/virtualenvs/another_test_project_env/bin/celery -A another_test_project worker --loglevel=INFO --concurrency=10 -n [email protected]%%h
の点に注意してください。
私のフォームが送信されただけで何か間違っているのは明らかです。上記のout.logファイルを見ると、私は最初のタスクしか見ることができず、他のフォームの投稿には何も表示されません。
事前に感謝します。
UPDATE
上述したように、私は、タスクが作成されなかった直後に別のものを受信された8.32 AM(GMT)で第1のフォームを提出し、そして。質問を終えた直後に、私は9.15にフォームを再度提出しました。このためにタスクが作成され、メッセージが受信されました!私は再びフォームを提出しましたが、タスクは再度作成されませんでした。お役に立てれば!
こんにちは、私に戻ってくれてありがとう。私は既にスーパーバイザーのconfファイルにstopasagroup = trueを持っています。 RabbitMQに対するあなたのコメントに関しては、vhostsを使ってunbuntuを実行していないので、これを行う必要がありますか? (私はPleskを使用していません - これについて私の無知を許してください)。その間、私は提供されたリンクを見ていきます - 多くの感謝 – Newfoundland
こんにちは、私はあなたが与えた指示に従って、働いている - 多くのありがとう - 非常に感謝 – Newfoundland
私の喜び.... – Ykh