# 定时器&多线程
标准的
import datetime
import schedule
import threading
import time
def job1():
print("I'm working for job1 start", datetime.datetime.now())
time.sleep(5)
print("job1: end", datetime.datetime.now())
def job2():
print("I'm working for job2 start", datetime.datetime.now())
time.sleep(3)
print("job2: end", datetime.datetime.now())
def job1_task():
threading.Thread(target=job1).start()
def job2_task():
threading.Thread(target=job2).start()
def run():
schedule.every(3).seconds.do(job1_task)
schedule.every(3).seconds.do(job2_task)
while True:
schedule.run_pending()
time.sleep(1)
if __name__ == '__main__':
run()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
改造的
import datetime
import schedule
import threading
import time
def fn(name):
print(name, "I'm working start", datetime.datetime.now())
time.sleep(5)
print(name, " end", datetime.datetime.now())
def job1_task():
for i in range(6):
threading.Thread(target=fn, args=(i,)).start()
def run():
schedule.every(3).seconds.do(job1_task)
while True:
schedule.run_pending()
time.sleep(1)
if __name__ == '__main__':
run()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24