python每天定时9点执行_python定时执行方法

python每天定时9点执行_python定时执行方法1time.sleepimporttimeforiinrange(5):print(i)time.sleep(10)2用shedimporttimeimportschedschedule=sched.scheduler(time.time,time.sleep)deffunc(string1,float1):print(“nowis”,time.time(),”…

大家好,又见面了,我是你们的朋友全栈君。

1 time.sleep

import time

for i in range(5):

print(i)

time.sleep(10)

2 用shed

copycode.gif

import time

import sched

schedule = sched.scheduler ( time.time, time.sleep )

def func(string1,float1):

print(“now is”,time.time(),” | output=”,string1,float1)

print(time.time())

schedule.enter(2,0,func,(“test1”,time.time()))

schedule.enter(2,0,func,(“test1”,time.time()))

schedule.enter(3,0,func,(“test1”,time.time()))

schedule.enter(4,0,func,(“test1”,time.time()))

schedule.run()

print(time.time())

copycode.gif

其中func中放要执行的函数,用schedule.enter加入要执行的函数,里面的第一个参数是延迟执行的时间,用sched.scheduler进行初始化

copycode.gif

1512033155.9311035

now is 1512033157.9316308 | output= test1 1512033155.9311035

now is 1512033157.9316308 | output= test1 1512033155.9311035

now is 1512033158.9322016 | output= test1 1512033155.9311035

now is 1512033159.9316351 | output= test1 1512033155.9311035

1512033159.9316351

[Finished in 4.2s]

copycode.gif

上面是执行结果,缺点是任务队列是阻塞型,即schedule里的任务不执行完,后面的主线程就不会执行

3 用threading里的timer,实现非阻塞型,即主线程要任务同时执行

copycode.gif

import time

from threading import Timer

def print_time( enter_time ):

print “now is”, time.time() , “enter_the_box_time is”, enter_time

print time.time()

Timer(5, print_time, ( time.time(), )).start()

Timer(10, print_time, ( time.time(), )).start()

print time.time()

copycode.gif

执行结果:

1512034286.9443169

1512034286.9452875

now is 1512034291.9460146 enter_the_box_time is 1512034286.9443169

now is 1512034296.9461012 enter_the_box_time is 1512034286.9452875

[Finished in 10.2s]

可看出任务和主线程是同步执行,但是后3位又稍有不同,应该是python的多线程并非真正的多线程导致

每天某个时间定时执行任务:

copycode.gif

import datetime

import time

def doSth():

print(‘test’)

# 假装做这件事情需要一分钟

time.sleep(60)

def main(h=0, m=0):

”’h表示设定的小时,m为设定的分钟”’

while True:

# 判断是否达到设定时间,例如0:00

while True:

now = datetime.datetime.now()

# 到达设定时间,结束内循环

if now.hour==h and now.minute==m:

break

# 不到时间就等20秒之后再次检测

time.sleep(20)

# 做正事,一天做一次

doSth()

main()

copycode.gif

4 linux用 crontab

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/160693.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • python常见的数据类型有哪些?

    python常见的数据类型有哪些?变量用来存储数据,那么大家有没有想过,我们应该让变量占用多大空间,保存什么样的数据呢?在讲解变量的类型之前,我们先来看一个生活中的例子,例如,我们要运送一台电脑,大卡车和小轿车都可以完成,但是,如果使用大卡车运送一台电脑,显然有点小题大做,浪费了大卡车的空间,如图1所示。图一:卡车和轿车运输一台电脑同理,如果使用变量存储数据时,为了更充分利用内存空间,我们可以为变量指定不同的数据类型。Python中常见的数据类型如图2所示图二:Python变量数据类型图二中罗列了Python中常见的数据类型,下

    2022年6月4日
  • 笛卡尔心形函数表达式_笛卡尔心形曲线[通俗易懂]

    笛卡尔心形函数表达式_笛卡尔心形曲线[通俗易懂]1650年,斯德哥尔摩的街头,52岁的笛卡尔邂逅了18岁的瑞典公主克里斯汀。那时,落魄、一文不名的笛卡尔过着乞讨的生活,全部的财产只有身上穿的破破烂烂的衣服和随身所带的几本数学书籍。生性清高的笛卡尔从来不开口请求路人施舍,他只是默默地低头在纸上写写画画,潜心于他的数学世界。一个宁静的午后,笛卡尔照例坐在街头,沐浴在阳光中研究数学问题。他如此沉溺于数学世界,身边过往的人群,喧闹的车马队伍。都无法对他…

    2022年10月17日
  • Oracle触发器用法实例详解

    Oracle触发器用法实例详解oracle

    2022年7月11日
  • spring SpEL

    spring SpEL

    2021年12月5日
  • make menuconfig 使用技巧

    make menuconfig 使用技巧makemenuconfig使用技巧1.直接按行首带颜色的字母,跳转到该行:2.按/搜索对应的configflag,可以看到对应的位置location,也可以直接跳转过去。不支持搜索对应的字符串描述,不区分大小写。如按/后,搜索CONFIG_FIXED_PHY,如下图,可以看到左侧(1),按对应数字,…

    2022年5月2日
  • 【转载】D3D深度测试和Alpha混合

    【转载】D3D深度测试和Alpha混合

    2021年9月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号