美文网首页
四阶段day5-celery异步、定时任务

四阶段day5-celery异步、定时任务

作者: ATM_shark | 来源:发表于2019-02-23 10:02 被阅读0次

    celery
    http://docs.jinkan.org/docs/celery/getting-started/introduction.html?tdsourcetag=s_pcqq_aiomsg
    redis
    任务队列(异步任务)、定时任务
    ===================
    1、本步骤的内容可放在项目的init.py 文件中。celery容易产生循环引用。

    import celery
    # 注册环境变量(注册Django配置文件)
    os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'teamproject.settings')
    # 创建Celery的实例 - broker代表消息代理(从哪里获取消息队列服务)
    app = celery.Celery('teamproject',
                       broker='redis://47.107.170.191/2')
    # 读取Django项目的配置信息
    app.config_from_object('django.conf:settings')
    
    app.autodiscover_tasks(lambda : settings.INSTALLED_APPS)
    # celery -A teamproject worker -l info &
    # 使用Windows 10做开发且使用celery 4.x版本需要先安装一个三方库作为辅助
    # pip install eventlet
    # 然后启动celery的消费者的时候需要多加一个参数
    # celery -A teamproject worker -l info -P eventlet
    

    2、本步骤的内容可放在项目的init.py 文件中。celery容易产生循环引用。

    # 配置定时任务
    app.conf.update(
        timezone=settings.TIME_ZONE,
        enable_utc=True,
        # 定时任务要通过消息的生产者将其转换成队列中的消息
        # celery -A teamproject beat -l info
        beat_schedule={
            'task_one': {
                'task': 'common.task.excel',  #任务(视图函数)位置
                'schedule': crontab(),#crontab是对时间设置的函数,默认每分钟发布一个定时任务。
                # 'args': ('刘强东,奶茶妹妹喊你回家喝奶啦', )
            },
            'task_two': {
                'task': 'common.tasks.auto_export_excel',  #任务(视图函数)位置
                'schedule': crontab(),   #crontab是对时间设置的函数,默认每分钟发布一个定时任务。
                # 'args': ('刘强东,奶茶妹妹喊你回家喝奶啦', )
            },
        },
    )
    

    3、输入命令

    #定时发布任务命令(celery会将定时和异步任务放在 'redis://47.107.170.191/2')
    celery -A teamproject beat -l info &
    
    
    #执行任务命令
    celery -A teamproject worker -l info &
    
    
    #注意:异步任务需要用 @app.task 装饰要执行的异步任务
    #例如:
    @app.task
    def add(x,y):
        return x+y
    

    ====================

    相关文章

      网友评论

          本文标题:四阶段day5-celery异步、定时任务

          本文链接:https://www.haomeiwen.com/subject/qvmuyqtx.html