需求:

想实现 每周一到周五下班钉钉打卡提醒,每周四发周报提醒

使用了二种方法实现

一:apscheduler,代码如下

 import json,requests,datetime
from apscheduler.schedulers.blocking import BlockingScheduler
access_token = 'XXXXXXXX' #钉钉token
contentWee ='今天周四吆,记得发周报'
contentPun = '下班不打卡,辛苦也白搭' def notify(access_token,conId,content,tele):
'''
钉钉通知
:param access_token:
:param conId: 0:艾特所有人 1:艾特个人 2或其他:普通通知
:param content: 通知内容
:param tele: conId==1时使用,tele: [13800000000,13800000001]
:return:
'''
url = 'https://oapi.dingtalk.com/robot/send?access_token=' + access_token if conId == 0:
# 艾特所有人
con = {
"msgtype": "text",
"text": {
"content": content
},
"at": {
"isAtAll": 'true',
"atMobiles": [ ]
}
}
elif conId == 1:
# 艾特个人
con = {
"msgtype": "text",
"text": {
"content": content
},
"at": {
"isAtAll": 'false',
"atMobiles": tele
}
}
else:
# 普通通知
con = {
"msgtype": "markdown",
"markdown": {
"title": "hhh",
"text": content
},
} data = json.dumps(con)
headers = {'content-type': 'application/json'}
r2 = requests.post(url, data=data, headers=headers)
print(r2.text) if __name__ == '__main__':
tele = [13800000000,13800000001]
scheduler = BlockingScheduler()
# mon-fri: 周一到周五,也可以写成 1-5 ,时间 18:30 ,ars:方法 notify入参;每周-到周五下午六点半执行notify方法
scheduler.add_job(notify, 'cron', day_of_week='mon-fri', hour=18, minute=30, args=[access_token,1,contentPun,tele])
#同上,每周四下午4点执行notify方法
scheduler.add_job(notify, 'cron', day_of_week='thu', hour=16, minute=00, args=[access_token,4,contentWee,tele])
scheduler.start()

二、schedule 代码如下,阻塞流程
 import json,requests,time,schedule,datetime

 #notify方法同一
if __name__ == '__main__':
  schedule.every().thursday.at('16:00').do(notify,access_token,contentWee) # 每周四 16.00执行
  while True:
  schedule.run_pending()
部署:
直接执行 nohup python 文件名 & 建议使用第一种调度方法

python 实现定时任务的更多相关文章

  1. python Aspscheduler 定时任务框架使用

    前几日,爬虫基本能爬点东西出来了,现在需要实现定时把数据爬到DB里去,可以使用windows定时任务执行py脚本,但好像不彻底,要做一个纯(jiao)粹(qing)的程序员,定时任务的重任落到了Asp ...

  2. 用python设置定时任务

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

  3. python中定时任务

    今天看网络框架时,突然想看一下定时器,于是往上搜索了一下python中timer task的实现,但是由于python本身对线程的支持不是太好,因为全局排它锁的存在,使得多线程在访问资源时效率比较低. ...

  4. python实现定时任务

    定时任务的实现方式有很多种,如windows服务,借助其他定时器jenkins运行脚本等方式.本文介绍的是python中的一个轻量级模块schedule. 安装 pip命令:pip install s ...

  5. Python中定时任务框架APScheduler

    前言 大家应该都知道在编程语言中,定时任务是常用的一种调度形式,在Python中也涌现了非常多的调度模块,本文将简要介绍APScheduler的基本使用方法. 一.APScheduler介绍 APSc ...

  6. Python中定时任务框架APScheduler的快速入门指南

    前言 大家应该都知道在编程语言中,定时任务是常用的一种调度形式,在Python中也涌现了非常多的调度模块,本文将简要介绍APScheduler的基本使用方法. 一.APScheduler介绍 APSc ...

  7. python版 定时任务机制

    定时任务的原理 服务器执行一个python脚本 这个脚本,循环执行配置的定时任务地址 Python请求地址, 该地址应该返回, 下次再来执行的秒数. 也就是任务的频率 比如任务希望每3秒执行一次, 那 ...

  8. python实现定时任务那些你不知道的模块

    一.使用time中的sleep 这种方式最简单,在循环里放入要执行的任务,然后sleep一段时间在执行 from datetime import datetime import time # 每n秒执 ...

  9. python的定时任务模块--schedule

    首先先安装一下模块 下面我们简单的学习一下schedule模块 先简单的看个示例 import schedule def test(*args,**kwargs): print("hello ...

  10. python 学习定时任务apscheduler模块

    最近在解决定时任务问题找到了apscheduler模块,贴一段代码 from apscheduler.schedulers.blocking import BlockingSchedulerimpor ...

随机推荐

  1. [Oracle] - 关于星期(IW和WW)的算法

    1. 查看数据库字符集(如果字符集不同,可能显示乱码) select DECODE(parameter, 'NLS_TERRITORY', 'TERRITORY', 'NLS_LANGUAGE', ' ...

  2. Nginx08---腾讯云宝塔面板

    主要在宝塔面板中Nginx和Apache不可同时存在 宝塔可以快速搭建网站并且配置 与nginx不冲突:nginx nginx

  3. java当中JDBC当中请给出一个Oracle DataSource and SingleTon例子

    [学习笔记] 6.Oracle DataSource and SingleTon: import oracle.jdbc.pool.OracleDataSource;import java.sql.C ...

  4. 自定义注解扩展springMvc的validation注解

    文章目录 前言 自定义校验注解 使用 后记 前言 我们都知道 springMvc 的检验框架使用的是 hibernate 的 validator ,检验数据,是有那么一点小爽快: 但是,validat ...

  5. Hello World详解

    Hello World 题目 [题目描述] 输出“Hello World!”(不输出“”). [输入格式] 啥都没有. [输出格式] Hello World! [数据规模] 输出就行了,管那么多干什么 ...

  6. stm32片上ADC转换实验

    原理图所示: BAT_DET 接到PB0 引脚,VSYS 是直流3.7V的电压.再来看下103的adc转换和引脚GPIO的关系 我们直接选用ADC1 根据上表格只能使用通道8 下面给我常用的ADC1寄 ...

  7. PAT(B) 1031 查验身份证(Java)

    题目链接:1031 查验身份证 (15 point(s)) 题目描述 一个合法的身份证号码由17位地区.日期编号和顺序编号加1位校验码组成.校验码的计算规则如下: 首先对前17位数字加权求和,权重分配 ...

  8. maven配置阿里镜像

    在conf\settings.xml 在<mirrors>里面添加   <mirror>    <id>nexus-aliyun</id>    < ...

  9. vue-cli3+mand-mobile svg 配置

    // vue.config.js chainWebpack: config => { config.resolve.alias // key,value自行定义,比如.set('@assets' ...

  10. vs项目模板创建和使用

    一.使用dotnet命令创建(适用于.NET Core,可以创建包含任意数量个项目的模板,但不会出现在vs的新建项目模板中) 官方文档:https://docs.microsoft.com/zh-cn ...