监视阵列中项目的状态

时间:2017-01-27 03:28:59

标签: python python-3.x

抱歉,我无法更好地构建标题。让我解释一下我要做的事情。

我有一份工作对象列表。每个作业对象都有一个 monitor 函数,该函数使用subprocess.run调用命令并更新对象的状态(在类中定义的实例变量)。

示例:

def start_monitoring(self):
    self.logger.info('Starting to monitor all the jobs.')

    for job in self.running_jobs_list:
        job.monitor()

工作班:

class Job(object):
    def __init__(self):
        self._status = None

    def monitor(self):
        command = self.render() # returns a command when executed gets a status of the job
        command_results = None

        command_results = subprocess.run(args=[command], shell=True, universal_newlines=True, check=True,
                                             stdout=subprocess.PIPE, stderr=subprocess.PIPE)
        self._status = command_results.stdout.strip()

作业的状态可以是“DONE”,“PEND”或“EXIT”之一。

我希望每隔1分钟继续监控 running_jobs_list 中的作业,直到 running_jobs_list 中的所有作业对象都已完成或退出

因此,如果状态为PEND,我希望在1分钟后再次监控。

最好的方法是什么?我有一个想法是做这样的事情:

#Pseudo code
While len(self.running_jobs_list) != 0:
  start_monitoring()
  sleep(1 min)

# Inside start_monitoring delete a job from the array if its status is DONE or EXIT

0 个答案:

没有答案