需求:创建一个任务模板 这个任务分四个层级执行 第一个层级为1个队列任务 第二个层级基于第一个层级得到的结果为10个队列任务 第三个层级基于第二个层级得到的结果为200个队列任务 第四个层级基于第三个层级得到的结果为200个结果 执行到第四个层级为任务结束 等待下一个周期 每个层级的任务需要上一个层级执行成功得到结果才会有下一个层级任务 增加需求: 修改任务模板 。要求修改前执行的任务逻辑执
首先,我们可以定义一个任务模板类,其中包含四个层级的任务队列:
class TaskTemplate:
def __init__(self):
self.level1_tasks = []
self.level2_tasks = []
self.level3_tasks = []
self.level4_tasks = []
然后,我们可以定义一个执行任务的方法,该方法按照四个层级依次执行任务,并等待上一个层级任务执行成功后才继续执行下一个层级任务:
def execute_template(self):
# 执行第一层级任务
for task in self.level1_tasks:
result = task.execute()
# 如果第一层级任务执行成功,则执行第二层级任务
if result:
for i in range(10):
result2 = self.level2_tasks[i].execute(result)
# 如果第二层级任务执行成功,则执行第三层级任务
if result2:
for j in range(200):
result3 = self.level3_tasks[j].execute(result2)
# 如果第三层级任务执行成功,则执行第四层级任务
if result3:
for k in range(200):
self.level4_tasks[k].execute(result3)
为了实现修改任务模板后再执行逻辑,我们可以在任务模板中添加一个修改后的任务队列,然后在执行任务时判断是否存在修改后的任务队列,如果存在则先执行该队列中的任务,再执行原有的层级任务。代码如下:
class TaskTemplate:
def __init__(self):
self.level1_tasks = []
self.level2_tasks = []
self.level3_tasks = []
self.level4_tasks = []
self.modified_tasks = []
def execute_template(self):
# 执行修改后的任务队列
for task in self.modified_tasks:
result = task.execute()
# 执行第一层级任务
for task in self.level1_tasks:
result = task.execute()
# 如果第一层级任务执行成功,则执行第二层级任务
if result:
for i in range(10):
result2 = self.level2_tasks[i].execute(result)
# 如果第二层级任务执行成功,则执行第三层级任务
if result2:
for j in range(200):
result3 = self.level3_tasks[j].execute(result2)
# 如果第三层级任务执行成功,则执行第四层级任务
if result3:
for k in range(200):
self.level4_tasks[k].execute(result3)
这样,当需要修改任务模板时,我们只需要将修改后的任务添加到modified_tasks队列中,然后在下一次执行任务时先执行modified_tasks队列中的任务,再执行原有的层级任务即可
原文地址: https://www.cveoy.top/t/topic/fshc 著作权归作者所有。请勿转载和采集!