zoukankan      html  css  js  c++  java
  • 0042 django_celery任务处理(02 定时任务)

      定时触发任务的步骤如下:

    1 在settings.py中增加APP

    INSTALLED_APPS = [
        # ...   
        'django_celery_results', 
        'django_celery_beat',
    ] 

    2 在settings.py中修改结果存储

      为了更直观的看到定时任务的效果,结果暂时不保存在redis数据库中,而是保存在关系数据库中。故先修改结果存储。

    CELERY_BROKER_URL = 'redis://:cgl139@172.17.0.11:5379/26'  # Broker配置,使用Redis作为消息中间件
    CELERY_RESULT_BACKEND = 'django-db'  # BACKEND配置,这里使用django-db
    CELERY_RESULT_SERIALIZER = 'json'  # 结果序列化方案
    

    3 执行数据迁移

    python manage.py migrate
    

      这时候,我们查看数据库,可以看到多了很多表,其中有一个就是结果存储表。

    4 创建用户

    python manage.py createsuperuser
    

    5 发布到服务器

    # 查看81端口的占用情况
    lsof -i:81
    # 释放81端口的占用
    kill -9 pid
    # 释放celery进程
    pkill -f celery -9
    # 发布工程
    python manage.py runserver 0.0.0.0:81 &
    ctrl+c
    #  启用beta调度,CeleryDemo是工程名
    celery -A CeleryDemo beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler &
    # 启动worker任务
    celery worker -A CeleryDemo -l info

    6 远程登录admin

     

     

        配置好任务后,就该检查任务执行情况了。

    7 检查后台任务表

       可以看到,这个任务每分钟执行了一次。

    8 检查控制台

      我们在add函数中,每执行一次控制台打印了一条记录。

  • 相关阅读:
    systemctl命令
    linux下常用命令查看端口占用
    【PostgreSQL】存取jsonb
    tomcat内存溢出之PermGen space
    Spring事务传播机制
    java框架篇---spring aop两种配置方式
    Hibernate一对多实例
    Github 的系统内部都在用什么开源软件?
    这是一个关于软件开发的博客。
    JavaScript中数组的集合和映射
  • 原文地址:https://www.cnblogs.com/dorian/p/12426874.html
Copyright © 2011-2022 走看看