类图:
文档解析:
1.setup(self)
- Ganga.core服务启动时由每个作业调用的一个钩子。在监测子系统enabled之前调用。可以被backend用来进行一些特殊的setup(比如远程backned的ssh传输管道)
2.master_submit(self,rjobs,subjobconfigs,masterjobconfig,keep_going=false)
- 提交主作业和所有子作业
- masterjobconfig是共享的,单独的subjob配置在subjobconfig中定义
- 单个作业(无split的提交也通过本方法执行。在这种情况下subjobconfig只包含一个元素——作业本身。
- 默认实现是调用每个单独作业的submit()方法
- 如果任何子作业fails则整个过程被忽略并抛出一个IncompleteSubmissionError
- 子作业已经submit的保持submitted
- 默认实现不处理masterjobconfig(因此子类中一般可以重写本方法)
- 在IBackend_submit()中keep_going是可选的,用以允许不支持keep_going=True的backend实现,这些backend在某些情况下可能要调用IBackend.master_submit()来工作,这样就不需要重写本方法。很多情况中该参数并不重要,因此由开发维护人员决定是否启用对该参数的支持。
3.submit(self,subjobconfig,master_input_sandbox)
- 提交一个单独的作业。成功返回1
- master_input_sandbox是一个列表,内容为所有子作业共享的文件名单
- 不直接由框架调用,只被master_submit()方法的默认实现调用。因此如果master_submit()可以实现对单作业的提交,则本方法是多余的。
- 4.0.x后的变化
- subjobconfig与老接口的jobconfig等效
- jobid已经废弃将移除
4.master_prepare(self,masterjobconfig)
- 准备主作业(共享的沙盒文件)。由master_submit()调用三次。沙盒根据self._packed_input_sandbox标志(一个类属性)产生
5.master_auto_resubmit(self,rjobs)
- 一个钩子,在有人想重写自动resubmit行为时可以使用。否则等效于普通的resubmit。
6.master_resubmit(self,rjobs,backend=None)
- resubmit(状态是submitted的)作业。
- 配置phase会跳过。
- 默认的实现是一个等效bulk的操作
- 如果重写,要保证在主作业上调用过updateMasterJobstatus(),以使主作业能监控循环上被监控。
7.master_kill(self)
- kill作业和所有子作业。成功返回1.
- 默认的实现是使用kill()方法并在所有子作业上仿照bulk操作
- 在有failure的情况下依然会尽可能多的kill掉子作业。
- 若操作未完成则抛出IncompleteKillError()异常
8.kill(self)
- kill作业(和所有子作业)
- 从不会由框架调用。只会被默认的master_kill()调用。
9.peek(self,filename='',command='')
- 允许查看作业在backend上的输出文件
- 由command命令查看filename文件
10.remove(self)
- 主要用于远程(ssh)backend.当作业被移除的时候这个backend方法被调用。
11.master_updateMonitoringInformation(jobs)
- 静态方法
- 更新作业的监控信息:
- 在Backendk需要监控的作业列表(包括状态为submitted和running的作业)
- 上述作业列表中不包含子作业
- 默认实现是叠代遍历子作业并执行updateMonitoringInformation()
12.updateMonitoringInformation(jobs)
- 静态方法
- 更新单作业的监控信息。这个作业是指一个作业列表,可包含子作业和无分片作业
- 框架中不会直接调用。可能仅由master_updateMonitoringInformation()默认实现来调用。
13.timedetails(self)
- 返回所有可用的backend指定的时间戳
14.getStateTime(self,status)
- 在作业转变到running和completed状态时取得时间戳
15.check_auto_resubmit(self)
- 一个钩子,用于检查作业是否能自动resubmitted.
Comments !