python定时任务的详细教学

环境的依赖安装

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)    每天的00crontab(minute=0,hour='*/3')   每三个小时

    crontab(day_of_week='sunday')   每周日的每一小时

    crontab(minute=0,hour='/3,8-17')   8时到17时的每三个小时
"""


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值