gpt4 book ai didi

java - SOS - 柏林调度程序无法继续下一项工作

转载 作者:IT王子 更新时间:2023-10-29 01:26:59 27 4
gpt4 key购买 nike

我现在正在将 SOS 调度程序从 sun solaris 迁移到 Oracle linux,

SOS Berlin 调度程序是 1.5.3253 的最新版本 - Linux X64Java JDK 1.7.0.45 - 64 位

上次使用的是 JavaScript,但不支持 64 位,所以我改为使用 javax.script:javascript

很高兴每个作业都能运行,但现在的问题是一旦第一个作业被触发,作业就不会继续进行下一个作业。

这是我修改过的脚本:

<?xml version="1.0" encoding="UTF-8"?>
<job order="yes" title="F0001">
<params>
<param name="command" value="'/disk4/job/F0001 > /disk4/job/logs/F0001.log'"/>
<param name="ignore_error" value="0"/>
<param name="ignore_signal" value="0"/>
<param name="ignore_stderr" value="1"/>
<param name="log_file" value="/disk4/job/logs/F0001.log"/>
<param name="timeout" value=""/>
<param name="interpreter" value="/bin/ksh"/>
</params>
<script
java_class="sos.scheduler.managed.JobSchedulerManagedExecutableJob" language="java"/>
<monitor>
<script language="javax.script:javascript">
function spooler_task_after(){
var exitCode = spooler_task.exit_code();
if(exitCode != 0){
spooler_log.info("Program exit with exit code : " + exitCode);
return false;
}
return true;
}
</script>
</monitor>
</job>

这是我的工作链:

<?xml version="1.0" encoding="UTF-8"?>
<job_chain title="001_DAILY">
<job_chain_node error_state="error" job="F0001" next_state="1" state="0"/>
<job_chain_node error_state="error" job="F0002" next_state="2" state="1"/>
<job_chain_node error_state="error" job="F0003" next_state="success" state="2"/>
<job_chain_node job="001_END" state="success"/>
<job_chain_node.end state="error"/>
</job_chain>

这是我的最终工作:

<?xml version="1.0" encoding="utf-8"?>
<job order="yes" title="001_END">
<params>
<param name="command" value="'echo DONE > /disk4/job/logs/001_END.log'"/>
<param name="ignore_error" value="0" />
<param name="ignore_signal" value="0" />
<param name="ignore_stderr" value="1" />
<param name="interpreter" value="/bin/ksh" />
<param name="log_file"
value="/disk4/job/logs/tmp_job_stdout.log" />
<param name="timeout" value="" />
</params>
<script java_class="sos.scheduler.managed.JobSchedulerManagedExecutableJob"
language="java" />
<monitor>
<script language="javax.script:javascript">

function spooler_task_after(){
return true;
}
</script>
</monitor>
<commands on_exit_code="success">
<add_order id="002_ROUTINE" job_chain="/002_ROUTINE_A" replace="yes"/>
</commands>
</job>

但是在结束作业之后,它可以去下一个作业链继续,但只能运行第二个作业链的第一个作业。

作业链上的配置错误吗?

有什么想法吗?谢谢 !

最佳答案

问题已确定。

错误如下:

<param name="ignore_stderr" value="1" />

之前我使用的是 1.3.x 版本。

现在升级到最新版本,变量名已更改。

解决方法如下:

<param name="scheduler_order_ignore_stderr" value="1"/>

然后作业将照常进行到下一个。

关于java - SOS - 柏林调度程序无法继续下一项工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20289498/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com