python按什么键停止运行_python的APScheduler框架,如何接收键盘信号停止运行

该代码实现了一个使用Python的Scheduler库来间隔性运行monitor函数的功能,该函数检查taskmanager进程并更新心跳记录。如果进程正常,更新selftest为'ok';否则,更新为'processerror'。在主程序中,通过CTRL+C停止任务时,期望能够优雅地结束进程。
摘要由CSDN通过智能技术生成

啥也不说了,先贴代码:

def monitor(client):

run_heartbeat = client.run.heartbeat

etc_rpc = client.etc.rpc

document = etc_rpc.find_one({'server':'taskmanager'})

rpc = document['host'] + ':' + document['port']

if process_ok('taskmanager'):

run_heartbeat.update({'process':'taskmanager','rpc':rpc},{'$set':{'selftesttime':datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),'selftest':'ok'}})

logging.info("update : selftest is 'ok'")

print "update : run_heartbeat.taskmanager.selftest is 'ok'"

else:

run_heartbeat.update({'process':'taskmanager','rpc':rpc},{'$set':{'selftesttime':datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'),'selftest':'process error'}})

logging.info("update : selftest is 'process error'")

print "update : run_heartbeat.taskmanager.selftest is 'process error'"

if __name__ == "__main__":

print "TaskMonitor beginning......"

sched = Scheduler()

sched.daemonic = False

sched.add_interval_job(monitor,seconds=int(tasktime),args=[client])

sched.start()

功能:每隔tasktime秒就运行一次monitor函数

期望结果:在运行过程中通过CTRL+C停止

求大神解决办法!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值