私はdjango、セロリとrabbitmqに問題があります。Djangoセロリとrabbitmqは再起動するまで動作しません
セロリを使用してFCMデバイスにメッセージを送信しますが、セルラーサーバーを再起動するまでセロリがそのFCMコマンドを実行してメッセージを送信しないという問題があります。
セロリを再起動しても同じことをやり直すと、すべてのアクションをやり直してから再起動する必要があります。
例コード:
from __future__ import absolute_import, unicode_literals
from celery import shared_task
# firebase cloud messaging
from fcm.utils import get_device_model
Device = get_device_model()
@shared_task
def send_firebase_message(json, **kwargs):
response = Device.send_msg(json, **kwargs)
return response
これは単純なコードですので、私はセロリサーバを再起動するまで、このDevice.send_msg
は発生しません。 セロリは、再起動するまでこの作業を行いません。多分それはrabbitmq問題ですか?
誰もがこれに対応していますか?何が問題なの?
毎回使用後にセロリをきれいにする必要があるように思えます。 *** $セロリのパージ*** –
しかし、私はすべてのアクションのためにそれを行う必要がある場合は悪いですか? –
すべてのプロジェクトでガベージコレクションを呼びます。特に私がコンポーネントを使用するとき。それ以外の場合は、RAMにスタックされたり、メモリリークを引き起こしたり、場合によってはプロセスをブロックしたりします。それが問題ではない場合でも、その良い練習 –