Celery 以外の簡単なアプローチ方法は、非同期またはスケジュールされたタスクを実行するカスタム django-admin コマンドを作成することです。
次に、Windows では at
を使用します。 これらのタスクをスケジュールするコマンド。 Linux では、cron
を使用します。 .
また、開発環境で可能であれば、Windows を捨てることを強くお勧めします。 Linux や Mac OSX でさえも、あなたの生活はより良いものになるでしょう。たとえば、スペアまたは古いマシンを Ubuntu で再利用するか、Windows ボックスの VM で Ubuntu を実行します。
ジャンゴ クロノグラフは素晴らしい代替品です。 1 つの cron をセットアップするだけで、django admin ですべてを実行できます。 django 管理からタスク/コマンドをスケジュールできます。
私は同じ問題を抱えていたので、セロリ (複雑すぎる) または cron (アプリケーションの外部) で解決しようとするのを延期し、最終的に Advanced Python Scheduler を見つけました。使い始めたばかりですが、かなり成熟していて安定しているように見えます。適切なドキュメントがあり、多くのスケジューリング形式 (cron スタイルなど) を使用できます。
ドキュメントから、特定の間隔で関数を実行します。
from apscheduler.scheduler import Scheduler
sched = Scheduler()
sched.start()
def hello_world():
print "hello world"
sched.add_interval_job(hello_world,seconds=10)
これは非ブロッキングであり、 urls.py
からモジュールをインポートするだけで、まったく同じものを実行します .これがお役に立てば幸いです。
https://github.com/andybak/django-cron
単一の cron タスクによってトリガーされますが、スケジューリングと構成はすべて Python で行われます。