1.1 schedule 基本使用

  1、schedule 介绍

      1. 提到定时任务调度的时候,相信很多人会想到芹菜celery,要么就写个脚本塞到crontab中。

      2. 不过,一个小的定时脚本,要用celery的话太“重”了。所以,我找到了一个轻量级的定时任务调度的库:schedule。

      3. 安装: pip install schedule

  2、schedule最基本使用

      官网地址:https://schedule.readthedocs.io/en/stable/

      参考博客:https://www.cnblogs.com/anpengapple/p/8051923.html

#! -*- coding:utf8 -*-
import schedule
import time def job():
print("I'm working...") schedule.every(1).seconds.do(job)
schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job) while True:
schedule.run_pending()
time.sleep(1)

schedule最简单使用

      1. 这是在pypi上面给出的示例,通过这个栗子,我们也可以知道,schedule其实就只是个定时器。

      2. 在while True死循环中,schedule.run_pending()是保持schedule一直运行,去查询上面那一堆的任务,在任务中,就可以设置不同的时间去运行,跟crontab是类似的。

      3. 但是,如果是多个任务运行的话,实际上它们是按照顺序从上往下挨个执行的。如果上面的任务比较复杂,会影响到下面任务的运行时间

  3、利用python 用多线程/多进程 结合 schedule 实现异步定时任务

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import datetime
import schedule
import threading
import time def job1():
print("I'm working for job1")
time.sleep(2)
print("job1:", datetime.datetime.now()) def job2():
print("I'm working for job2")
time.sleep(2)
print("job2:", datetime.datetime.now()) def job1_task():
threading.Thread(target=job1).start() def job2_task():
threading.Thread(target=job2).start() def run():
schedule.every(1).seconds.do(job1_task)
schedule.every(1).seconds.do(job2_task) while True:
schedule.run_pending()
time.sleep(1)
run()

利用python 用多线程/多进程 结合 schedule 实现异步定时任务

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import datetime
import schedule
import threading
import time from lib.logs import Logger
from backends.syn_ldap_to_db import store_ldap_to_db def syn_ldap_info():
threading.Thread(target=store_ldap_to_db).start() def crond_pre_employee():
schedule.every().day.at("13:40").do(syn_ldap_info)
# schedule.every(1).seconds.do(syn_ldap_info)
# schedule.every(1).seconds.do(job2_task)
while True:
schedule.run_pending()
time.sleep(1) def run_cround():
print '########################### run crond tasks ##############################'
now = time.strftime('%Y-%m-%d %H:%M:%S')
msg = 'pre_staff中定时任务开始监控,时间【%s】' %now
Logger().log(msg, True)
threading.Thread(target=crond_pre_employee).start() run_cround()

定时任务运用

11: python中的轻量级定时任务调度库:schedule的更多相关文章

  1. python中的轻量级定时任务调度库:schedule

    提到定时任务调度的时候,相信很多人会想到芹菜celery,要么就写个脚本塞到crontab中.不过,一个小的定时脚本,要用celery的话太“重”了.所以,我找到了一个轻量级的定时任务调度的库:sch ...

  2. python中常⽤的excel模块库

    python中常用的excel模块库&安装方法 openpyxl openpyxl是⼀个Python库,用于读取/写⼊Excel 2010 xlsx / xlsm / xltx / xltm⽂ ...

  3. [Node] Agenda 中文文档 定时任务调度系统[基础篇]

    Agenda简介 使用步骤概述 步骤详述 初始化 定义任务 参数说明: 配置任务 参数说明 设置监听 注意事项 Agenda简介 Agenda是一个定时任务管理模块,它将node中的定时任务存储在数据 ...

  4. python中模块、包、库的区别和使用

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

  5. (数据科学学习手札135)tenacity:Python中最强大的错误重试库

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 我们在编写程序尤其是与网络请求相关的程序, ...

  6. (数据科学学习手札137)orjson:Python中最好用的json库

    本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 大家好我是费老师,我们在日常使用Pytho ...

  7. Python学习-11.Python中的类定义

    Python是一门面向对象语言,那么作为面向对象的特征——类也是有的.值得注意的是Python中一切皆对象,并不像C#中为了性能考虑,int这些在Python中也是对象.(C#中int是结构体) 如何 ...

  8. python中常用的函数与库一

    1, collections.deque 在python里如果我们用列表作为队列使用也是可以的,只是当从队尾删除或者增加元素的时候是很快的,但是从队首删除或者增加元素则要慢得多,这是因为在队首进行操作 ...

  9. python中模块,包,库的概念

    模块:就是.py文件,里面定义了一些函数和变量,需要的时候就可以导入这些模块. 包:在模块之上的概念,为了方便管理而将文件进行打包.包目录下第一个文件便是 __init__.py,然后是一些模块文件和 ...

随机推荐

  1. iOS UI布局-定时器

    定时器是比较常用的一个UI控件,在付款.抢购时,经常会使用到.提取成一个通用的方法 /** * 倒计时GCD通用方法 * 通常用的计时器都是用NSTimer,但是NSTimer在线程很吃紧的时候效果不 ...

  2. Dapper基础入门

    Dapper是一个轻量级的ORM.之前最常用的ORM是EF,其实EF底层是Ado.net实现的. 现在基本上已经远离SqlHelper时代了. Dapper是开源的  https://github.c ...

  3. unity3d-知识汇总

    itween下载 http://www.youkexueyuan.com/exp_show/1147.html 代码修改精灵图片的透明度 UIBp.GetComponent<Image>( ...

  4. tortoise svn中更改用户

    1. Open Windows Explorer.2. Right-click anywhere in the window.3. Click TortoiseSVN → Settings.4. Cl ...

  5. python之mysqldb模块安装

    之所以会写下这篇日志,是因为安装的过程有点虐心.目前这篇文章是针对windows操作系统上的mysqldb的安装.安装python的mysqldb模块,首先当然是找一些官方的网站去下载:https:/ ...

  6. arm-cache coherency

    提高一个系统的performance,有两种办法: 1) 不断提高一个core的performance,手段就是不断提高freq,减小Vt,这样都会在增加power(dynamic,leakage) ...

  7. BFS 搜索 蓝桥杯模拟赛

    题目链接:https://nanti.jisuanke.com/t/36117 这个题目想不到用广搜来做,一直在想深搜. 广搜的思路呢,是把最外圈不是黑色(不是0)的数 的位置 i 和 j 进队,赋值 ...

  8. cmd下 mysql操作命令大全详解

    启动:net start mySql; 进入:mysql -u root -p/mysql -h localhost -u root -p databaseName; 列出数据库:show datab ...

  9. Python 7 -- 文件存储数据

    上一节总结了一个基本web应用的代码,这一节主要讲用户访问的数据记录在log文件中,并显示在页面上. 这节步骤: 按以下目录建好相应的文件夹及内容 webapp|----vsearch4web.py ...

  10. La Vie en rose (模拟)

    #include<bits/stdc++.h> using namespace std; ; ; int T, n, m; char str1[maxm], str2[maxn]; int ...