Celeryタイミングタスクの簡単な例
1031 ワード
需要:5分ごとにブログリストを検索
手順:
redisサーバを開く
ローカルプロジェクトサーバを開く
新しいtasksファイルコードは次のとおりです.
注意celeryバージョンは4.0以上のバージョンが必要です
tasksと同級ディレクトリに移動
タイマーが正常に停止していない場合、タイマーを再起動したときに次のエラーが発生した場合:
tasksの兄弟ディレクトリの下のcelerybeatを削除するだけです.pidファイルを再起動すればいい!
手順:
redisサーバを開く
ローカルプロジェクトサーバを開く
新しいtasksファイルコードは次のとおりです.
# coding:utf-8
import requests
from celery import Celery
app = Celery('tasks', broker='redis://127.0.0.1:6379/0')
@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
#
sender.add_periodic_task(300, test.s('http://127.0.0.1:8000/blog/add/'), name='add every 5minites')
@app.task
def test(url):
print(' ,,,,, ')
requests.get(url)
注意celeryバージョンは4.0以上のバージョンが必要です
tasksと同級ディレクトリに移動
celery :
case_manage>celery -A tasks beat
celery :
celery -A tasks worker --loglevel=info --pool=solo
タイマーが正常に停止していない場合、タイマーを再起動したときに次のエラーが発生した場合:
celery beat v4.1.1 (latentcall) is starting.
ERROR: Pidfile (celerybeat.pid) already exists.
Seems we're already running? (pid: 35544)
tasksの兄弟ディレクトリの下のcelerybeatを削除するだけです.pidファイルを再起動すればいい!