我正在寻找一种方法来获取 Autosys 中作业的下游依赖项的递归列表。
例如,如果jobX1的条件为s(jobA)
且jobX2的条件相同s(jobA)
,我希望能够列出 jobA 的下游依赖项是jobX1和jobX2以及它们的递归下游依赖项。
我需要它,因为如果我将jobA置于冰上但仍需要运行下游依赖项,我想获得一个强制执行的快速列表。我希望autorep
有一个选择,但我似乎没有找到一个。
我知道我可以编写一个递归依赖的 Perl 脚本,这很容易做到,但我不想重新发明轮子。
我正在寻找一种方法来获取 Autosys 中作业的下游依赖项的递归列表。
例如,如果jobX1的条件为s(jobA)
且jobX2的条件相同s(jobA)
,我希望能够列出 jobA 的下游依赖项是jobX1和jobX2以及它们的递归下游依赖项。
我需要它,因为如果我将jobA置于冰上但仍需要运行下游依赖项,我想获得一个强制执行的快速列表。我希望autorep
有一个选择,但我似乎没有找到一个。
我知道我可以编写一个递归依赖的 Perl 脚本,这很容易做到,但我不想重新发明轮子。
使用 job_depends 命令。它有 -c 和 -d 选项来列出作业之前和之后的作业。
在基于 Oracle 的 4.5 版本的 AutoSys(其中 'autosys' 是架构)上,我使用以下查询来获取递归依赖项列表:
select ltrim(sys_connect_by_path(b.job_name,' ==> '),' ==> ') parent_child_grandchild
from autosys.job b
start with ( b.condition LIKE ('%jobA%')
)
and b.JOB_TYPE ='b'
connect by b.condition like PRIOR concat(concat('%',b.job_name),'%')
order by parent_child_grandchild;