django-celery-beat を試してみました。管理バックグラウンドでタスクを追加すると、動的にタスクを追加できます。
ただし、有効になるのは celery Beat を再起動した後です。他に試す方法はありますか?
高洛峰2017-05-18 10:58:10
検討できるアイデアがあり、現在この方法を試しており、石を感じながら川を渡ろうとしている段階です。 Celery はスケジュールされたタスクをサポートしていますが、Linux で crontab のようなスケジュールされたタスクを動的に追加する必要があるため、実装には参考にならないことがわかりました。ドキュメントを読んで情報を探した結果、Celery の apply_async 関数は非常に便利です。その単純な使用方法はカウントダウンですが、eta の威力は非常に大きいです。たとえば、2017-05-02 20:0:0 に実行されるタスクを指定すると、次のように使用できます。
job.apply_async(args=args, kwarg=kwargs, eta=datetime(2017,5,2,20,0,0))
リーリー
ここで非常に重要な点は、タスクが正常に実行されたときの次回の実行時間を計算する方法です。その方法は次のとおりです。 リーリーこれに基づいて書き直すだけで済みます。具体的には、さまざまな方法があります。