1 #!/usr/bin/env python
2 #coding:utf8
3 #Author:lsp
4 #Date:下午2:17:54
5 #Version:0.1
6 #Function: 每隔一段时间做一个事情
7 from datetime import date, time, datetime, timedelta
8
9 #要做的事情
10 def work():
11 print "hello world."
12
13 def runTask(func, day=0, hour=0, min=0, second=0):
14 # Init time
15 now = datetime.now()
16 strnow = now.strftime('%Y-%m-%d %H:%M:%S')
17 print "now:",strnow
18 # First next run time
19 period = timedelta(days=day, hours=hour, minutes=min, seconds=second)
20 next_time = now + period
21 strnext_time = next_time.strftime('%Y-%m-%d %H:%M:%S')
22 print "next run:",strnext_time
23 while True:
24 # Get system current time
25 iter_now = datetime.now()
26 iter_now_time = iter_now.strftime('%Y-%m-%d %H:%M:%S')
27 if str(iter_now_time) == str(strnext_time):
28 # Get every start work time
29 print "start work: %s" % iter_now_time
30 # Call task func
31 work()
32 print "task done."
33 # Get next iteration time
34 iter_time = iter_now + period
35 strnext_time = iter_time.strftime('%Y-%m-%d %H:%M:%S')
36 print "next_iter: %s" % strnext_time
37 # Continue next iteration
38 continue
39
40 # runTask(work, min=0.5)
41 runTask(work(), day=0, hour=0, min=0,second=10)