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定时任务
定时任务一般会存在中大型企业级项目中,为了减少服务器.数据库的压力往往会采用时间段性的去完成某些业务逻辑.比较常见的就是金融服务系统推送回调,一般支付系统订单在没有收到成功的回调返回内容时会持续性的回 ...
随机推荐
- Powershell基础---帮助系统
帮助系统能带给我们什么? 1.快速找到命令,无需使用Bing或者Google 2.运行命令时候返回了错误信息,帮助系统可以告诉我们如何正确使用该命令 3.多个命令组合执行完成复杂的工作,帮助系统告诉我 ...
- 墨者学院靶场:uWSGI(CVE-2018-7490)路径遍历漏洞复现
0x01漏洞简介 uWSGI是一款Web应用程序服务器,它实现了WSGI.uwsgi和http等协议.uWSGI 2.0.17之前版本中存在路径遍历漏洞,该漏洞源于程序没有正确的处理DOCUMENT_ ...
- CentOS8.1.1911正式发布!
前阵子,CentOS官方宣布:CentOS8.1.1911正式发布!已经安装CentOS8.0的朋友,可以执行yum update更新(笔者更新了2次),体验下新版本!如是新安装,可以从官方网站下载h ...
- 【做中学】第一个 Go 语言程序:漫画下载器
原文地址: 第一个 Go 语言程序:漫画下载器: https://schaepher.github.io/2020/04/11/golang-first-comic-downloader 之前学了点 ...
- 74HC595芯片的特性及使用方法和点评
一 它能干什么? 74HC595是一个8位串行输入.平行输出的位移缓存器:平行输出为三态输出.在SCK的上升沿,单行数据由SDL输人到内部的8位位移缓存器,并由Q7‘输出,而平行输出则是在LCK的 ...
- python的历史和下载python解释器
一.python的诞生 1.Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,创造了一种C和sh ...
- Unity 游戏框架搭建 2019 (三十二、三十三) 类的命名 & 代码文件命名
昨天我们完成了第八个示例的第二个 MenuItem 菜单顺序的调整. 我们今天再往下接着调整. 我们来看下接下来的 MenuItem 代码如下: [MenuItem("QFramework/ ...
- layui table渲染和数据处理
最近在用layui开发管理系统,果然是"累"ui 实现功能:将之前选择的选项勾选,渲染备注信息(原数据为空的列) <table class="layui-hide& ...
- 程序选择结构if和switch的定义以及使用方法
什么是if选择结构 if选择结构是根据条件判断之后在做处理 基本的if选择结构的语法 if(条件){//条件为真则执行代码1,否则不执行 //代码块1 } if-else选择结构 为什么使 ...
- 报错:require_once cannot allocate memory----php,以前自己弄的稍微有点特殊的开发环境
最近出现过一个问题,值得记录 类似于这样的报错的问题: Warning: require_once(/www/app/somecomponent.php): failed to open stream ...