来源:小树苗blog , 访问原文
因为需求比较简单, 所以最后用了while True: + time.sleep()解决的.
小树苗代码
#Function: 每隔一段时间做一个事情
from datetime import date, time, datetime, timedelta
#要做的事情
def work():
print ('hello world.')
def runTask(func, day=0, hour=0, min=0, second=0):
# Init time
now = datetime.now()
strnow = now.strftime('%Y-%m-%d %H:%M:%S')
print ('now:',strnow)
# First next run time
period = timedelta(days=day, hours=hour, minutes=min, seconds=second)
next_time = now + period
strnext_time = next_time.strftime('%Y-%m-%d %H:%M:%S')
print ('next run:',strnext_time)
while True:
# Get system current time
iter_now = datetime.now()
iter_now_time = iter_now.strftime('%Y-%m-%d %H:%M:%S')
if str(iter_now_time) == str(strnext_time):
# Get every start work time
print ('start work: %s' % iter_now_time)
# Call task func
work()
print ('task done.')
# Get next iteration time
iter_time = iter_now + period
strnext_time = iter_time.strftime('%Y-%m-%d %H:%M:%S')
print ('next_iter: %s' % strnext_time)
# Continue next iteration
continue
# runTask(work, min=0.5)
runTask(work(), day=0, hour=0, min=0,second=10)
我的代码
while True:
time.sleep(1000)
run_work()