python 使用蟒蛇的排程和定时执行定时任务

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 使用蟒蛇的排程和定时执行定时任务相关的知识,希望对你有一定的参考价值。

#!/usr/bin/env python
# -*- coding: UTF-8 -*-

import sched, time
from threading import Thread, Timer
import subprocess

s = sched.scheduler(time.time, time.sleep)

class Job(Thread):
    def run(self):
        '''主要业务执行方法'''
        print_time()
        print "-------------- compiling --------------"
        subprocess.Popen("compile.sh", cwd="/bes/nj-build")

def each_day_time(hour,min,sec,next_day=True):
    '''返回当天指定时分秒的时间'''
    struct = time.localtime()
    if next_day:
        day = struct.tm_mday + 1
    else:
        day = struct.tm_mday
    return time.mktime((struct.tm_year,struct.tm_mon,day,
        hour,min,sec,struct.tm_wday, struct.tm_yday,
        struct.tm_isdst))
    
def print_time(name="None"):
    print name, ":","From print_time",\
        time.time()," :", time.ctime()

def do_somthing():
    job = Job()
    job.start()

def echo_start_msg():
    print "-------------- auto compile begin running --------------"

def main():
    #指定时间点执行任务
    s.enterabs(each_day_time(1,0,0,True), 1, echo_start_msg, ())
    s.run()
    while(True):
        Timer(0, do_somthing, ()).start()
        time.sleep(24 * 60 * 60)

if __name__ = "__main__":
    main()

以上是关于python 使用蟒蛇的排程和定时执行定时任务的主要内容,如果未能解决你的问题,请参考以下文章

linux例行性任务(定时作业)

定时任务 & 定时线程池 ScheduledThreadPoolExecutor

sybase 如何像SQL SERVER一样建立作业,让他能定时运行存储过程

markdown 蟒蛇定时执行脚本实例

CentOS7 使用定时任务

Python下定时任务框架APScheduler的使用