django-crontabタイミング実行タスクメソッド
2100 ワード
需要
毎日1通のメールを要求し、そのメールを読み取ります.
これはlinuxがcrontabを持参して実現できるが、結局django開発である.djangoから実現する方法があるかどうかは分からないと思います.
簡単に検索してみると、この方面の方法は確かに少なくありません.
celeryプラグインの学習曲線が大きいのを見たので,この小さなニーズはdjango-crontabを用いて解決した.
取付
ここまではほとんど問題ありません.次に作成するタイミングタスクは、カスタムmangeを実行する2つに分けることができる.pyのコマンドで、もう1つはカスタム関数を実行します.
私が選択した方法は、関数をカスタマイズすることです.
まず元のapp(view.pyと同級)にcronを新規作成します.py(名前は任意で、view.pyに置くこともできます.新しいファイルは管理しやすいです.)
settings.pyでの最後の増加
複数のタイミングタスクがある場合は、CORJOBSに入れればいいのですが、「/5***」はcrontab構文に従っています.
‘appname.cron.test'、このappnameはあなたが開発したときにsettingsに参加したものです.君のせいだpyファイルはこの下にあります.そうしないと、パスが見つかりません.cronはあなたが自分で作ったタスクファイルの名前です.testは実行する関数の内容です.
‘>>/home/test.log’は、通常、1つのファイルに情報を出力します.この方法では、「>>」は追加書き込みを表し、「>>」は上書き書き込みを表します.
開始
以上が完了したら、
現在のタイミングタスク
すべてのタイミングタスク
djangoサービスを再起動します.
多くの試みをしてgithubのドキュメントを見てみると、理解に役立ちます.
各種の経路は必ず正確であることを確保しなければならない.そうしないと、誤りを調べるのは難しい.
紹介は個人的な理解に基づいて、うっかり漏れがちなので、皆さんに役に立つといいですね.
リファレンスリンク
github : https://github.com/kraiz/django-crontab
毎日1通のメールを要求し、そのメールを読み取ります.
これはlinuxがcrontabを持参して実現できるが、結局django開発である.djangoから実現する方法があるかどうかは分からないと思います.
簡単に検索してみると、この方面の方法は確かに少なくありません.
celeryプラグインの学習曲線が大きいのを見たので,この小さなニーズはdjango-crontabを用いて解決した.
取付
pip install django-crontab
app名をsettingsに追加する.py中INSTALLED_APPS = (
'django_crontab',
...
)
ここまではほとんど問題ありません.次に作成するタイミングタスクは、カスタムmangeを実行する2つに分けることができる.pyのコマンドで、もう1つはカスタム関数を実行します.
私が選択した方法は、関数をカスタマイズすることです.
まず元のapp(view.pyと同級)にcronを新規作成します.py(名前は任意で、view.pyに置くこともできます.新しいファイルは管理しやすいです.)
def test():
print 123
#
settings.pyでの最後の増加
CRONJOBS = [
('*/5 * * * *', 'appname.cron.test','>>/home/test.log')
]
複数のタイミングタスクがある場合は、CORJOBSに入れればいいのですが、「/5***」はcrontab構文に従っています.
‘appname.cron.test'、このappnameはあなたが開発したときにsettingsに参加したものです.君のせいだpyファイルはこの下にあります.そうしないと、パスが見つかりません.cronはあなたが自分で作ったタスクファイルの名前です.testは実行する関数の内容です.
‘>>/home/test.log’は、通常、1つのファイルに情報を出力します.この方法では、「>>」は追加書き込みを表し、「>>」は上書き書き込みを表します.
開始
以上が完了したら、
python manage.py crontab add
を実行してタスクを追加して有効にする必要があります.現在のタイミングタスク
python manage.py crontab show
を表示すべてのタイミングタスク
python manage.py crontab remove
を削除djangoサービスを再起動します.
corntab -e
を実行すると、システムでこのタイミングタスクが作成されていることがわかるはずです.結局、django-crontabプラグインのlinux最下位への呼び出しだけで、この方法がwindowsで有効かどうかは不明です.多くの試みをしてgithubのドキュメントを見てみると、理解に役立ちます.
各種の経路は必ず正確であることを確保しなければならない.そうしないと、誤りを調べるのは難しい.
紹介は個人的な理解に基づいて、うっかり漏れがちなので、皆さんに役に立つといいですね.
リファレンスリンク
github : https://github.com/kraiz/django-crontab