schedule定时任务出现问题 (大坑已填)!!
因为python每次运行完,并不清除内存,nowtime一直不变,这导致了一个致命问题,使我的脚本一直运行失败,具体如下:
我设置的是每隔30分钟登陆一次,代码如下
if __name__ == "__main__":
login()
schedule.every(30).minutes.do(login) while True:
schedule.run_pending()
time.sleep(1)
但是它每次运行返回的数据都是一样的
我9点多第一次打开运行,半个小时后运行结果如下:
[+]登录成功
现在是北京时间:(2020-05-07 09:53:26.624833)
LM003,“任务未开始”,任务时间:13
LM006,“任务未开始”,任务时间:14
LM007,“任务未开始”,任务时间:12
LM005,“任务未开始”,任务时间:09
[+]登录成功
现在是北京时间:(2020-05-07 09:53:26.624833)
LM003,“任务未开始”,任务时间:13
LM006,“任务未开始”,任务时间:14
LM007,“任务未开始”,任务时间:12
LM005,“任务未开始”,任务时间:09
原因是我在关键函数中加入了对比
def indexlist():
print("现在是北京时间:(%s)"%(now))
for index in range(len(list2)):
if((buylist2[index]['state'])==""):
if(int(buylist2[index]['task_hour']) <= int(now.hour)):
while True:
send(QQ)
if(json_data3['data']!='null'):
break
send_pic(****)
else:
print ("{ID},“任务未开始”,任务时间:{tasktime}".format(ID = ***,tasktime = ***))
else:
print ("{ID},任务已完成".format(***))
而我的now = datetime.datetime.now()是定义在login外的,所以每次运行一直不变,导致程序出现输出错误
解决办法:将now = datetime.datetime.now()写入每半个小时login函数,并且每次运行完最后加上now=None清除内存
def login():
global now
now = datetime.datetime.now()
巴拉巴拉一大堆之后 now=None
About Me
QQ 群:1094019526 tg 群:QQ 群里有
联系我请加 QQ 好友 (1362449059),注明添加缘由
文章内容来源于 TOM 的学习笔记,部分整理自网络,若有侵权或不当之处还请谅解
本文版权所有,转载请标明出处,谢谢
schedule定时任务出现问题 (大坑已填)!!的更多相关文章
- spring schedule定时任务(一):注解的方式
我所知道的java定时任务的几种常用方式: 1.spring schedule注解的方式: 2.spring schedule配置文件的方式: 3.java类继承TimerTask: 第一种方式的实现 ...
- spring boot项目中处理Schedule定时任务
项目中,因为使用了第三方支付(支付宝和微信支付),支付完毕后,第三方支付平台一般会采用异步回调通知的方式,通知商户支付结果,然后商户根据通知内容,变更商户项目支付订单的状态.一般来说,为了防止商户项目 ...
- python3 schedule定时任务
import time import schedule # cd C:\Python36-32\Scripts pip install schedule # py文件名字不能叫schedule,否则会 ...
- 模块 schedule 定时任务
schedule模块实现定时任务 2018-08-29 15:01:51 更多 一.官方示例 import schedule import time def job(): print("I' ...
- [root-me](web-client)write up 一个大坑怎么填啊
root-me web-client writeup 地址:www.root-me.org HTML - disabled buttons 打开网页发现按钮不能按,查看源代码,有 'disabled' ...
- spring schedule定时任务(二):配置文件的方式
接着上一篇,这里使用spring配置文件的方式生成spring定时任务. 1.相应的web.xml没有什么变化,因此便不再罗列.同样的,相应的java代码业务逻辑改动也不大,只是在原来的基础上去掉@C ...
- azkaban使用--schedule定时任务
1.schedule azkaban的schedule内部就是集成的quartz,而 quartz语法就是沿用linux crontab,crontab可照本文第2点 此处以此project(azka ...
- 【tmos】spring boot项目中处理Schedule定时任务
我的代码 /** * Author:Mr.X * Date:2017/10/30 14:54 * Description: */ @Component @Configurable @EnableSch ...
- springboot使用schedule定时任务
定时任务一般会存在中大型企业级项目中,为了减少服务器.数据库的压力往往会采用时间段性的去完成某些业务逻辑.比较常见的就是金融服务系统推送回调,一般支付系统订单在没有收到成功的回调返回内容时会持续性的回 ...
随机推荐
- node实现防盗链
什么是防盗链 盗链,顾名思义就是盗窃链接,就是在他人未经允许的情况下,去使用他人站点的任何图片,视频,内容等资源,来借此提升已用的站点的活跃度,严重损坏了别人的利益.那么防盗链就是采用一些办法阻止自己 ...
- 在Sping的配置文件中,关于dataSource的配置,就我们常用的方法大致可以有三种:
在Sping的配置文件中,关于dataSource的配置,就我们常用的方法大致可以有三种: 1.一般的配置方法,直接在配置中指定其值.具体的例子我们参照Mysql的配置如下: <bean id= ...
- Redis之quicklist源码分析
一.quicklist简介 Redis列表是简单的字符串列表,按照插入顺序排序.你可以添加一个元素到列表的头部(左边)或者尾部(右边). 一个列表最多可以包含 232 - 1 个元素 (4294967 ...
- 003-scanf函数使用和表达式-C语言笔记
003-scanf函数使用和表达式-C语言笔记 学习目标 1.[掌握]输入函数scanf的基本使用方法 2.[掌握]输入函数scanf运行原理和缓冲区理解 3.[掌握]算术运算符和算术表达式的使用 4 ...
- 收集免费的接口服务,做一个api的搬运工
hello, 大家好,今天给大家推荐的开源项目在某种程度上极大的方便了广大的开发者,这个开源项目统计了网上诸多的免费API,为广大开发者收集免费的接口服务,专心致志做一个API的搬运工,每月定时更新新 ...
- 利用Ajax实现异步请求
Ajax 1.课程引入 静态网站和动态网站都是同步的,但同步方式有缺点:页面请求响应式阻塞,影响用户体验 为了解决这个问题,可以通过变通的手段实现页面的局部更新(隐藏帧),由于隐藏 ...
- vue中SPA的优缺点和理解
说说你对SPA的理解,他的优缺点分别是什么? SPA(single-page application) 尽在Web页面初始化时加载相应的HTML,JavaScript和CSS.一旦页面加载完成,SPA ...
- 利用浏览器的console篡改cookie
背景: 最近公司有个客户问题,是由于浏览器的cookie中多记录过期的session id导致重复登录,普通操作无法复现,因此尝试进行cookie篡改复现问题. 方法: 首先,要知道软件定义的sess ...
- 从零开始的计算机网络基础(图文并茂,1.8w字,面试复习必备)
前言 在互联网高速发展的今天,我们通过手机,电脑等通讯设备可以很轻松达到未出茅庐便知天下事的境界.每天我们都要访问数不胜数的网站,通过打开浏览器,输入网址两步搞定.当然更为常规的做法是打开浏览器,设置 ...
- curl book
curl是利用URL语法在命令行方式下工作的开源文件传输工具.它被广泛应用在Unix.多种Linux发行版中,并且有DOS和Win32.Win64下的移植版本. 官方地址 man page 下载页面, ...