环境的依赖安装
pip install schedule -i http://mirrors.aliyun.com/pypi/simple --trusted-host mirrors.aliyun.com
代码举例:
import schedule, time
def job():
print("I'm working...")
# 每隔十分钟执行一次
schedule.every(10).minutes.do(job)
# 每隔一小时执行一次
schedule.every().hour.do(job)
# 每天的18:50执行一次
schedule.every().day.at("18:50").do(job)
# 每周一执行一次
schedule.every().monday.do(job)
# 每周天的18:50执行一次
schedule.every().sunday.at("18:50").do(job)
# 每周三的18:50执行一次
schedule.every().wednesday.at("18:50").do(job)
# 每分钟的第44秒执行一次
schedule.every().minute.at(":44").do(job)
n = 0
while True:
schedule.run_pending()
time.sleep(1)
n = n + 1
if n >= 120:
break
实际运用:
import schedule,time,requests,json
def job():
response_res = requests.get('http://api.k780.com/?app=weather.today&weaId=316&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json')
response_res.raise_for_status
weather_info = json.loads(response_res.content).get("result")
citynm=weather_info.get("citynm")
temperature_curr=weather_info.get("temperature_curr")
print(f'当前城市:{citynm} 此刻的温度是:{temperature_curr}')
# 每隔2秒执行一次
schedule.every(2).seconds.do(job)
n=0
while True:
schedule.run_pending()
time.sleep(1)
n=n+1
if n>10:
break
定时访问数据库
import pymysql.cursors
from datetime import datetime
import os
from apscheduler.schedulers.blocking import BlockingScheduler
def func(*args,**kwargs):
global cursor
try:
# 连接数据库
connect = pymysql.Connect(
host="127.0.0.1",
port=3306,
user="root",
password="project",
db="blog_project",
charset="utf8"
)
cursor = connect.cursor(cursor=pymysql.cursors.DictCursor)
print('连接成功')
except Exception as e:
return str(e)
try:
sql = "select id from blog_staff where read_number >= 50"
cursor.execute(sql)
message_list = cursor.fetchall()
print('查询中'+ str(datetime.now()))
cursor.close()
connect.close()
print('连接关闭')
return message_list
except Exception as e:
return ster(e)
def run():
print(func())
if __name__ == '__main__':
# 实例化
scheduler = BlockingScheduler()
scheduler.add_job(run, 'cron',minute="*/1")
# 执行
try:
scheduler.start()
except Exception as e:
print(e)
"""
crontab() 每分钟
crontab(minute=0, hour=0) 每天的0时0分
crontab(minute=0,hour='*/3') 每三个小时
crontab(day_of_week='sunday') 每周日的每一小时
crontab(minute=0,hour='/3,8-17') 8时到17时的每三个小时
"""