首页 > 代码库 > Python定时执行脚本
Python定时执行脚本
最近测试hbase,老发现服务挂掉,自己不能及时发现,想了想,写了个脚本,让脚本每个小时执行一次,以便检测是否有服务挂掉,如果有服务挂掉,及时启动
import os import datetime class CheckService(object): def __init__(self): pass def getService(self): # service list service = [‘Jps‘ ,‘EmbeddedServer‘ ,‘QuorumPeerMain‘ ,‘NodeManager‘ ,‘ResourceManager‘ ,‘NameNode‘ ,‘SecondaryNameNode‘ ,‘HMaster‘ ,‘HRegionServer‘ ,‘RunJar‘ ] # Traversal list for i in service: a = "jps | awk ‘{print $2}‘|grep "+i res = os.system(a) # Determine whether the service is running if res != 0 : print "%s is not running!" %(i) if i == ‘HMaster‘: os.system(‘start-hbase.sh‘) elif i == ‘HRegionServer‘: os.system(‘local-regionservers.sh start 1‘) elif i == ‘EmbeddedServer‘: os.system(‘ranger-admin start‘) elif i == ‘QuorumPeerMain‘: os.system(‘zkServer.sh start‘) else: print ‘restart Hadoop !!!‘ def timerFun(self,sched_Timer): flag = 0 while True: now = datetime.datetime.now() if now == sched_Timer: self.getService() flag = 1
else: if flag == 1: sched_Timer = sched_Timer + datetime.timedelta(hours=1) flag = 0 if __name__ == "__main__": cs = CheckService() sched_Timer = datetime.datetime(2017,7,25,9,14) print ‘run the timer task at {0}‘.format(sched_Timer) cs.timerFun(sched_Timer)
这个代码也可以扩展,把hours=1改成minutes=1就变成了每个小时定时任务,改成days=1就变成每天的定时任务
Python定时执行脚本
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。