在下次执行时,CTR从先前失败的步骤开始

时间:2017-11-30 09:30:03

标签: spring-cloud-dataflow spring-cloud-task

我有两个步骤的组合任务myFailedTask,其中一个配置为一直失败: <mf1: sampleTask --fail=true --custom-argument=m || sampleTask> 首次运行时,作业将以run.id等于 1 运行,并且mf1报告为失败。 下次运行点击率时,作业会在run.id等于 1 的情况下再次运行,并跳过sampleTask步骤:

2017-11-29 15:30:30.146 INFO 11604 --- [ taskExecutor-2] o.s.batch.core.job.SimpleStepHandler : Step already complete or not restartable, so no action to execute: StepExecution: id=97, version=3, name=myFailedTask-sampleTask_0, status=COMPLETED, exitStatus=COMPLETED, readCount=0, filterCount=0, writeCount=0 readSkipCount=0, writeSkipCount=0, processSkipCount=0, commitCount=1, rollbackCount=0, exitDescription=

我正在使用部署在以下属性文件中的httpclient转换器执行CTR:

app.httpclient.body-expression='name='+new com.fasterxml.jackson.databind.ObjectMapper().readTree(payload).findValue('taskName').asText()+ \
'&arguments=\
--increment-instance-enabled=true \
--split-thread-core-pool-size=10 \
--interval-time-between-checks=5000 \
--composed-task-arguments=--message='+new String(T(java.util.Base64).getEncoder().encode(payload.getBytes())) 
app.httpclient.http-method=POST
app.httpclient.url=http://localhost:9393/tasks/executions
app.httpclient.headers-expression={'Content-Type':'application/x-www-form-urlencoded'}

我还通过CTR调用之间的不同有效负载更改--composed-task-arguments - 效果相同。

所以,我的问题是如何强制点击率来运行新作业,而不是从失败的步骤中继续执行先前失败的作业。

更新

好的,挖掘春天来源,JobLauncherCommandLineRunner::getNextJobParameters下面的代码解释了行为:

if (isStoppedOrFailed(previousExecution) && job.isRestartable()) {
                // Retry a failed or stopped execution
                parameters = previousExecution.getJobParameters();
                // Non-identifying additional parameters can be removed to a retry
                removeNonIdentifying(additionals);
            }
            else if (incrementer != null) {
                // New instance so increment the parameters if we can
                parameters = incrementer.getNext(previousExecution.getJobParameters());
            } 

所以我在重述原来的问题:“如何将restartable属性传递给CTR?

0 个答案:

没有答案