python实现每天定时任务(2)

下面代码执行时是在当天的20点执行任务。

import time
from datetime import datetime, timedelta
from time import sleep

SECONDS_PER_DAY = 24 * 60 * 60


def doFunc():
    print "do Function..."


def doFirst():
    curTime = datetime.now()
    print curTime
    desTime = curTime.replace(hour=20, minute=0, second=0, microsecond=0)
    print desTime
    delta = desTime-curTime
    sleeptime = delta.total_seconds()
    print "Now day must sleep %d seconds" %     sleeptime
    sleep(sleeptime)
    doFunc()


if __name__ == "__main__":
    doFirst()


Python中,可以使用多种模块来实现定时任务的执行,以下是几种常见的方法: 1. **`schedule`** 模块:这是一个简单易用的任务调度库,你可以创建周期性的定时任务,例如每分钟、小时运行一次。 ```python import schedule import time def job(): print("This is a scheduled task.") # 定义一个每五分钟执行一次的任务 schedule.every(5).minutes.do(job) while True: schedule.run_pending() time.sleep(1) ``` 2. **`APScheduler`**:这个库功能更强大,支持复杂的调度规则,比如一次性任务、延迟执行等,并且可以在多线程或多进程环境下工作。 ```python from apscheduler.schedulers.blocking import BlockingScheduler def job(): print("Job executed at", datetime.now()) scheduler = BlockingScheduler() scheduler.add_job(job, 'interval', minutes=5) # 每5分钟执行一次 scheduler.start() ``` 3. **`daemon threads`** 或 **`threading`**:如果你的应用已经有一个主线程,可以创建守护线程来执行定时任务。 ```python import threading import time def timed_task(): while True: print("Task executed") time.sleep(60) # 每分钟执行 timer_thread = threading.Thread(target=timed_task, daemon=True) timer_thread.start() ``` 4. **`Windows Task Scheduler`** (仅限Windows系统): 如果你需要在操作系统层面设置定时任务,可以编写一个Python脚本然后通过注册成计划任务的形式运行。 上述方法都需要配合系统的定时机制,比如操作系统的cron服务(Linux)或任务计划程序(Windows)。记得处理好异常情况,确保任务能够正确停止或重启。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值