Django—Celery-使用

目录

  1. 创建任务
  2. 调用
  3. 生成数据库表
  4. 启动worker
  5. 获取任务执行结果
  6. 定时,计划任务

  • 创建任务


    from celery import shared_task
    import time
    @shared_task
    def hello_celery(loop):
     for i in range(loop):
        print('hello')
        time.sleep(2)
  • 调用


    views.py
    任务函数名.delay(参数,,,,)
  • 生成数据库表


    python manage.py migrate django_celery_results
  • 启动worker


    启动worker
    注意:修改tasks.py的内容后 要重启celery的服务
    celery -A 你的⼯程名 worker -l info
  • 获取任务执行结果


    异步任务执⾏完毕后,会⾃动触发信号:
    before_task_publish
    after_task_publish
    task_prerun
    task_postrun
    task_success
    task_failure
    task_revoked
    
    from celery.signals import task_success
    @task_success.connect(sender=add)
    def task_done_handler(sender=None, result=None):
     print(result)
  • 定时,计划任务


    定时任务
    启动: celery -A 你的⼯程名称 beat -l info
    在settings.py⽂件添加 CELERYBEAT_SCHEDULE = { 'schedule-test': { 'task':
    'app的名字.tasks.hello_celery', 'schedule': timedelta(seconds=3), 'args': (2,) },
    }
    
    
    计划任务时间
    #setting.py
    from celery.schedules import crontab
    CELERYBEAT_SCHEDULE = {
     "every-ten-second-run-my_task": {
     "task": "t07.tasks.my_task",
     "schedule": crontab(minute="01", hour="15"),
     "args": (2,)
     }
    }
发布了199 篇原创文章 · 获赞 6 · 访问量 2426

猜你喜欢

转载自blog.csdn.net/piduocheng0577/article/details/105032784