import os
import schedule
import time
def job():
os.system("scrapy crawl saveSpider")
print('yici ')
schedule.every().minutes.do(job)
# schedule.every().hour.do(job)
while True:
schedule.run_pending()
time.sleep(1)
'''
# 每10分钟执行一次job函数
schedule.every(10).minutes.do(test)
# 每10秒执行一次job函数
schedule.every(10).seconds.do(test)
# 当every()没参数时默认是1小时/分钟/秒执行一次job函数
schedule.every().hour.do(test)
schedule.every(6).hours.do(test)
schedule.every().day.at("10:30").do(test)
schedule.every().monday.do(test)
# 具体某一天某个时刻执行一次job函数
schedule.every().wednesday.at("13:15").do(test)
# 可以同时定时执行多个任务,但是每个任务是按顺序执行
schedule.every(10).seconds.do(job2)
# 如果job函数有有参数时,这么写
schedule.every(10).seconds.do(job,"参数")
'''
弊端
1.需要定时运行的函数job不应当是死循环类型的,也就是说,这个线程应该有一个执行完毕的出口。一是因为线程万一僵死,会是非常棘手的问题;二是下一次定时任务还会开启一个新的线程,执行次数多了就会演变成灾难。
2.如果schedule的时间间隔设置得比job执行的时间短,一样会线程堆积形成灾难,也就是说,我job的执行时间是1个小时,但是我定时任务设置的是5分钟一次,那就会一直堆积线程。