zoukankan      html  css  js  c++  java
  • Pyhton学习-Python与中间件之Celery(7)

    Pyhton浅谈-Python与中间件之Celery(7) 

    一、Celery介绍:

      Celery是一个简单、灵活且可靠的,处理大量消息的分布式系统;

      celery是用Python编写的,但该协议(AMQP协议)可以在任何语言实现。

      专注于实时处理的异步任务队列;

      同时也支持任务调度;

    二、Celery应用场景:

      后台任务;

      异步操作;

      定期执行的工作;

      一定程度上的分布式计算;

    三、Python操作Celery:

      1.安装Celery:pip install celery;

      2.Pyhton代码实现简单的操作:

      此代码分为两个task.py和run.py,task文件负责创建task,使用Celery执行后,run可以执行任务;

      

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author:catt1e
    # task.py
    
    import time
    from celery import Celery
    app = Celery("task", broker="amqp://", backend="redis://loaclhost")
    # backend和broker为Celery的两个参数,此处端口为默认,用户名和密码均无(测试环境),有相关安全措施的请注意
    # backend:redis://password@hostname:port/db-name # broker:amqp://user:pwd@hostname:port/bhost @app.task def worker(name): print(f"{name}工作正在进行") time.sleep(2) return f'{name}--ok'

      使用Celery命令执行并打印日志:celery worker -A task -l info;

      启动run.py执行任务:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author:catt1e
    # run.py
    
       from task import worker  # task为task.py
       
       def run(name):
           w = worker.delay(name)
           while not w.ready():
               pass
           result = w.get()
           print(result)
           return result
      
       run('log')
       run('catt1e')
    

      3.进阶操作,按时执行任务:

    #!/usr/bin/env python
    # -*- coding:utf-8 -*-
    # Author:catt1e
    
    from celery.schedules import crontab
    
    CELERY_TIMEZONE = 'Asia/Shanghai'
    
    CELERYBEAT_SCHEDULE = {
    # Executes every Monday morning at 7:30 a.m
        'add_time':{
            'task':'task_log.worker',
            'schedule':crontab(hour=7, minute=30, day_of_week=1),
            'args':(16, 16)
        }
    }
    

      

  • 相关阅读:
    Redis进阶教程aof(append only file)日志文件
    鼠标移动之hook学习
    SQL Server 2008:示例数据库安装
    接收IWebBrowser2的自动化事件
    什么是DOCTYPE 它对网页起何作用?
    Hack Attack : Install Leopard on your PC in 3 easy steps!
    How to customise the TWebBrowser user interface (part 1 of 6)
    Asp.Net 数据分页
    仿Ajax弹出半透明层 (支持IE FF)
    有关Visual Studio 2008 SP1和SQL Server 2008的一些说明
  • 原文地址:https://www.cnblogs.com/catt1e/p/12582583.html
Copyright © 2011-2022 走看看