私はdjango-celery
(https://pypi.python.org/pypi/django-celery/)を使用して、セロリの拍動(周期タスク)のスケジュールをDBに保存しています。しかし、バージョン3.1.25以降のセロリはサポートしていません。私はセロリ4.1.0に移動したいので、dbベースのスケジュールのためにdjango-celery-beat
(https://pypi.python.org/pypi/django_celery_beat)に移動することを検討していました。django_celery_beatはcrontabスケジュールを複数分/時間でサポートしていますか?
データとともにテーブル構造を正常に移行することができました。しかし、私は、djceleryがサポートしている複数の分と時間を持つcrontabスケジュールをサポートしていないdjango-celery-beatがあることを知っています。
たとえば、このcrontabのスケジュールを考える - 15,30,45 0,1 * * *
が
タスクは12時15分、12時30分、12時45分、1時15分、1時30分、1時45分で日常実行されます。これは、ジャンゴ・セロリーで働いていました。しかし、ジャンゴ・セロリ・ビートでは、12:15に実行されたように見えます(最初のインスタンス)。
旧セットアップ - Django==1.10, celery==3.1.24, django-celery==3.1.17
新しいセットアップ - Django==1.11.7, celery==4.1.0, django-celery-beat==1.1.0
は誰でもジャンゴ・セロリ・ビートに削除されているようにcrontabのスケジュールのためにサポートしているか否かを確認することはできますか?もしそれが動作するはずです、それはセロリやジャンゴ - セロリ - ビートの問題ですか?
おかげ
うーん...あなたがDBからそれらを引っ張るとき、あなたはリストにこれらを持っていますか?そして、あなたは[get_or_create](http://django-celery-beat.readthedocs.io/en/latest/#example-creating-crontab-based-periodic-task)を使いますか? – mutantkeyboard
@mutantkeyboardこれは、 'django-celery'を使って作成されたdb内の既存のスケジュールです。私も新しいものを作成しようとしましたが、get_or_createでは作成しませんでした。私は 'CrontabSchedule'オブジェクトを直接作成して保存しました。私はget_or_createを使用しないと違いが出ますか? – ksrini
だから私はあなたがapp.conf.beat_scheduleは= { #は午前7:30 「最初のタスク」で毎週月曜日の朝に実行 ' のようなものがあると仮定:{ 「タスク」:「tasks.add」、 のスケジュールを':タスク:'タスク: 'crontab(時間= 7、分= 30、day_of_week = 1)、 ' args ':(16,16)、 }、 ' second-task ':{ (16,16)、 } } {crontab(hour = 12、minute = 30、day_of_week = 1)、 } 'は、各タスクの辞書のコレクションでなければなりません。 – mutantkeyboard