zoukankan      html  css  js  c++  java
  • 启动调度blockingscheduler.py 2

    1、BackgroundScheduler:在不使用以下任何框架且希望调度程序在应用程序内部的后台运行时使用 
    
    2、只需调用start()调度程序即可启动调度 程序。对于除以外的调度程序BlockingScheduler,此调用将立即返回,您可以继续应用程序的初始化过程,可能会向调度程序添加作业。 
    
    2、注意: 调度程序启动后,您将无法再更改其设置。 
    
    
    # 代码 
    
    from datetime import datetime 
    
    import os 
    
    import logging 
    
    from apscheduler.schedulers.blocking import BlockingScheduler 
    
    from apscheduler.events import EVENT_JOB_EXECUTED, EVENT_JOB_ERROR 
    
      
    
    basicConfig = {"level": logging.INFO, "format": "%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s", 
    
                   "datefmt": '%Y-%m-%d %H:%M:%S', "filename": 'log1.BlockingScheduler', "filemode": "a"} 
    
    kwargs={ 
    
        'apscheduler.jobstores.default': { 
    
            'type': 'sqlalchemy', 
    
            'url': 'postgres://postgres:123456@127.0.0.1:5433/postgres' 
    
        }, 
    
        'apscheduler.executors.default': { 
    
            'class': 'apscheduler.executors.pool:ThreadPoolExecutor', 
    
            'max_workers': '20' 
    
      
    
        }, 
    
        'apscheduler.executors.processpool': { 
    
            'type': 'processpool', 
    
            'max_workers': '5' 
    
        }, 
    
        'apscheduler.job_defaults.coalesce': 'false', 
    
        'apscheduler.job_defaults.max_instances': '3', 
    
        'apscheduler.timezone': 'Asia/Shanghai',  # 设置时区 ,存储桶时区 
    
    } 
    
      
    
      
    
      
    
    def my_listener(event): 
    
        if event.exception: 
    
            print('任务出错了!!!!!!') 
    
        else: 
    
            print('任务照常运行...') 
    
      
    
      
    
    def tick(): 
    
        print('Tick! The time is: %s' % datetime.now()) 
    
      
    
      
    
    if __name__ == '__main__': 
    
        logging.basicConfig(**basicConfig) 
    
        scheduler = BlockingScheduler(kwargs) 
    
        scheduler.add_job(tick, 'interval', seconds=3) 
    
        print('Press Ctrl+{0} to exit'.format('Break' if os.name == 'nt' else 'C')) 
    
      
    
        try: 
    
            scheduler.add_listener(my_listener, EVENT_JOB_EXECUTED | EVENT_JOB_ERROR) 
    
            scheduler._logger = logging 
    
            scheduler.start() 
    
        except (KeyboardInterrupt, SystemExit): 
    
            pass 
  • 相关阅读:
    python 合并 Excel 单元格
    python 设置 Excel 表格的行高和列宽
    Python 用 openpyxl 模块统计 Excel 表格中的数据,以字典形式写入 py 文件
    python 打印字母阶梯和金字塔
    python 用 openpyxl 读取 Excel 表格中指定的行或列
    Python 的 filter() 函数
    Python 的 map() 函数
    python 之 range() 函数
    python 的 reduce() 函数
    python 之 lambda 函数
  • 原文地址:https://www.cnblogs.com/Xingtxx/p/15685080.html
Copyright © 2011-2022 走看看