服务器端常常需要启动一个进程,作为task处理任务,如果类似但任务类别较多,可以创建一个task父类
import json
import time
import signal
class Task(object):
running = True
interval_time = 10
def do_task(self):
while True and Task.running:
pass
def __sleep(self):
# 收到关闭信号不再休眠,如果已经休眠则无法控制
if LoadSwapDataTask.running:
time.sleep(LoadSwapDataTask.interval_time)
def warm_shutdown(signalnum, frame):
LoadSwapDataTask.running = False
Logging.INFO("prepare shutdown process of load swap data task...,running = %s, signalnum = %d" % (LoadSwapDataTask.running, signalnum))
def register_signal():
for sig in [signal.SIGINT, signal.SIGHUP, signal.SIGTERM]:
signal.signal(sig, warm_shutdown)
if __name__ == "__main__":
Logging = Logger('task')
Logging.INFO("has start process of load swap data task...")
register_signal()
task = LoadSwapDataTask()
task.do_task()
Logging.INFO("has shutdown process of load swap data task...")