手动实现一个任务管理器
这个管理器能够进行任务的添加,任务的延迟执行,
任务类
定义
class MyTask(object):
"""task类,封装了要执行的函数 [email protected]"""
# 需要执行的时间,方法本身,方法的参数
def __init__(self, time_out, target, *args, **kwargs):
self.time_out = time_out
self.target = target
self.args = args
self.kwargs = kwargs
# 调用被封装的方法
def call(self):
self.target(*self.args, **self.kwargs)
任务管理类
定义
class MyTasks(object):
"""任务管理类,用来对任务延时执行 [email protected]"""
def __init__(self):
self.tasks = []
super(MyTasks, self).__init__()
def add_task(self, delay, func, *args, **kwargs):
task = MyTask(time.time() + delay, func, *args, **kwargs)
self.tasks.append(task)
def execute_task(self):
now = time.time()
length = len(self.tasks)
remove_index = []
for i in range(0, length, 1):
if now >= self.tasks[i].time_out:
self.tasks[i].call()
remove_index.append(i)
if len(remove_index) > 0:
for index in remove_index:
self.tasks.remove(self.tasks[index])
至于定时任务,有了上面的抛砖引玉,相信也不难