在tasklet中退出Spring Batch作业

2023-12-08

我有一个 Spring Batch tasklet,但我不知道如何从它失败。我想检查某些参数,如果它们不存在,则该步骤的作业失败。

@Component
public class Tfp211SetupTasklet extends AbstractSetupTasklet {

    final static Logger LOGGER = LoggerFactory.getLogger(Tfp211SetupTasklet.class);

    @Override
    protected RepeatStatus performTask(ExecutionContext ec, ChunkContext chunkContext) {
        //TODO
        //add error checking. If the parameter is not there, fail out or throw an error message.
        Map<String, String> params = new HashMap<>();
        List<String> requiredParams = new ArrayList<>();
        requiredParams.add("name");
        requiredParams.add("id");
        requiredParams.add("test");
        JobParameters jobParameters = chunkContext.getStepContext().getStepExecution().getJobParameters();
        params.put("name", jobParameters.getString("name"));
        params.put("id", jobParameters.getString("id"));
        params.put("test", jobParameters.getString("test"));
//        if (!params.values().containsAll(requiredParams)) {
//            LOGGER.info("not all required parameters exist for the job execution to succeed.");
//            return RepeatStatus.FINISHED;
//        }
        ec.put(AbstractSetupTasklet.BATCH_PROGRAM_PARAMS, params);
        ec.put(AbstractSetupTasklet.BATCH_PROGRAM_NAME, NTfp211.class.getSimpleName());
        return RepeatStatus.FINISHED;
    }

}

注释掉的行是我试图让作业退出的行。有人有这方面的经验吗?


要使微线程失败,只需从中抛出异常即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在tasklet中退出Spring Batch作业 的相关文章

  • 可序列化对象的 ArrayList 的加密保存和解密加载

    我在 SD 卡中保存并加载一个文件 其中包含ArrayList使用这两种方法的可序列化对象 保存方法 public static void saveUserList ArrayList
  • 仅运行相应源代码已更改的单元测试?

    我正在 Jenkins CI 服务器中运行单元测试和 Selenium 测试 众所周知 在大型项目中测试需要很长时间才能运行 Java 是否有一个工具 框架只能触发其源代码已更改的测试 这是因为并非每次对 SCM 的提交都会影响源代码的所有
  • 在 Spark 中写入 JSON 时保留具有空值的键

    我正在尝试使用 Spark 编写 JSON 文件 有一些键有null作为价值 这些在中显示得很好DataSet 但是当我写入文件时 密钥会丢失 我如何确保它们被保留 写入文件的代码 ddp coalesce 20 write mode ov
  • 序列化 ArrayList

    我正在尝试编写一个 Android 游戏 即使用户想要返回主菜单或者活动被系统终止 我也希望能够暂停游戏 onSaveInstanceState 似乎并没有给我很大的控制权来决定何时可以读回捆绑包 而且据我所知 捆绑包仅在短时间内有效 所以
  • Maven项目中的HDF5

    我正在尝试将 hdf hdf5lib H5 导入到 NetBeans 中的 Maven 项目中 它有这个作为导入行 import hdf hdf5lib H5 正如这里所建议的 https support hdfgroup org prod
  • 在 JList 中写一些东西

    嘿 我还有另一个问题 我创建JList在我的主窗口中 现在我想向其中添加一些内容 我这样做 private void jButton2ActionPerformed java awt event ActionEvent evt Dodaj
  • 图像在 3D 空间中绕 Y 轴旋转

    我有一个 BufferedImage 我想用 theta 角而不是仿射变换绕 Java 中的 Y 轴旋转图像 图片 旋转将如下图所示 矩形将是图像 我可以通过旋转图像的每个像素并绘制图像来做到这一点 因为我必须旋转很多图像 所以我认为这不是
  • 是否有任何理由使用 ZoneId.of("UTC") 而不是 ZoneOffset.UTC ?

    有什么理由使用ZoneId of UTC 代替ZoneOffset UTC 我们知道两者之间的区别 如ZoneOffset UTC 和 ZoneId of UTC 之间有什么区别 https stackoverflow com questi
  • 在 alpine / Jprofile 10 中运行 jpenable 时出现 UnsatisfiedLinkError

    当运行 jpenable 以允许在运行 JDK 8 的 alpine 3 3 容器中对 Jprofiler10 进行分析时 我收到 UnsatisfiedLinkError 异常 有任何想法吗 ERROR The agent could n
  • 简单的Java程序插入USB热点后速度慢100倍

    我有以下Java程序 class Main public static void main String args throws java io IOException long start System nanoTime java io
  • 如何在 SpringBoot v3.0.0 中使用嵌入式 MongoDB?

    我正在尝试连接嵌入式 mongodb 并使用 MongoDbSpringIntegrationTest 对其进行测试 问题是相同的代码在 2 7 7 中适用于 spring boot 但在 3 0 0 中不适用于 spring boot 问
  • 如何使用Gson将JSONArray转换为List?

    在我的 Android 项目中 我试图将收到的 JSONArray 转换为列表 在 的帮助下这个答案 https stackoverflow com questions 8371274 how to parse json array in
  • java多线程中“私有最终对象”锁定有什么用?

    java多线程中 私有最终对象 锁定有什么用 据我的理解 我认为要使一个类成为线程安全的 我们应该使用内部锁定 将所有方法标记为同步并使用 this 将它们锁定在对象的监视器上 或者我们可以用方法中的私有最终对象锁替换类的 this 上标记
  • 错误包括 bouncycastle 提供商

    我需要使用bouncycastle provider我的项目中的库 我已将其包含在 gradle 项目中 apply plugin application sourceCompatibility 1 6 version 1 0 0 main
  • 更改JavaFX TableView字体大小[重复]

    这个问题在这里已经有答案了 您好 我想在表视图列内的文本上设置字体 我如何用 Java 做到这一点 这是我的代码 感谢帮助 private final TableView
  • Java泛型类型参数中的问号是什么意思? [复制]

    这个问题在这里已经有答案了 这是取自斯坦福解析器附带的一些示例的一小段代码 我已经用 Java 进行了大约 4 年的开发 但从未对这种风格的代码应该表示什么有非常深入的理解 List
  • 使用替换但不使用根元素的 Jaxb 继承

    我正在浏览布莱斯的博客http blog bdoughan com 2010 11 jaxb and inheritance using substitution html http blog bdoughan com 2010 11 ja
  • 优雅地避免 Java 中的 NullPointerException

    考虑这一行 if object getAttribute someAttr equals true 显然这一行是一个潜在的错误 属性可能是null我们会得到一个NullPointerException 因此我们需要将其重构为以下两个选择之一
  • 当框架被拖动时,如何设置 JWindow 的位置位于文本字段下方?

    我正在制作一个自动完成项目 就像谷歌一样 我的框架中有一个 jtextfield 每当我在该字段中输入内容时 该文本字段下方就会出现一个 JWindow 并且该窗口来自另一个类 现在的问题是 每当我拖动框架时 如何使窗口始终出现在文本字段下
  • 如何将元素添加到通用集合

    我想知道如何将专用对象添加到通用集合中 我正在使用以下代码 Collection

随机推荐

  • Objective C - iOS - 在 webViewDidFinishLoad 执行过程中调用 Dealloc

    我在 ios 中遇到内存管理问题 问题是 当我将一个具有 webView 的 viewController 推送到导航堆栈时 当我在加载 webview 之前单击返回时 我得到了 exec bad access 在 A 类 中 我创建一个新
  • 获取资源文件夹中的文件列表 - iOS

    假设我的 iPhone 应用程序的 资源 文件夹中有一个名为 文档 的文件夹 有没有一种方法可以在运行时获取该文件夹中包含的所有文件的数组或某种类型的列表 所以 在代码中 它看起来像 NSMutableArray myFiles get a
  • 如何结合 SELECT DISTINCT 和 SUM()

    我在 Oracle 中有一个如下所示的表 Products Product ID Product NME Product SUP Quantity 1 Apple USA 100 2 Fish Japan 50 3 Wine Italy 1
  • 如何改变 django 模型中 unique true 的行为?

    这里我没有从数据库中删除模型对象 我只是改变is deleted删除时状态为 True 但在这样做的同时unique True对于已删除的对象给出错误 那么我该如何处理这个问题 我想排除is deleted True来自唯一 True 的对
  • TStringGrid - OnMouseUp 未被调用!

    我在 Delphi 7 中的 TStringGrid 有一个奇怪的行为 如果弹出菜单与网格关联 Delphi 不会调用 OnMouseUp 事件 基本上 当按下人民币时 菜单的弹出会以某种方式取消 延迟 OnMouseUp 实际上 为了 1
  • 如何执行存储在 varchar 变量中的数学表达式

    我的数据库函数中有一个变量 LocalVariable 2 3 100 我想通过执行另一个变量中的表达式来获得结果 有人可以建议如何执行该表达式吗 另外 我想在数据库函数中 而不是在存储过程中 执行此操作 我期望的结果是 600 DECLA
  • 为什么我的 int[] 数组循环越界?

    Warning 我对 Java 和一般编程非常陌生 我会尽量说得清楚 我正在尝试取一个简单的整数 inputnumber 将其转换为字符串 temp 创建一个新的 int 数组 numberarray 并从最后一位数字开始循环遍历这个 in
  • Gradle 3.0.0 alpha 变体输出问题

    我想要有一个不一样的versionCode for debug构建类型而不是其中的类型release构建类型 这曾经通过在 Gradle Android 插件 v2 3 2 Gradle v3 3 中使用下面的配置来工作 但现在在 v3 0
  • SQL 到实体框架计数分组

    我需要翻译这个SQL声明给一个Linq Entity询问 SELECT name count name FROM people GROUP by name 查询语法 var query from p in context People gr
  • Karate API 测试 - 在同一功能文件中的不同场景中重用变量

    Karate 是否支持这样的功能 您可以在场景中定义变量并在同一功能文件的其他场景中重用它 我尝试做同样的事情但得到一个错误 在同一特征文件中重用变量的最佳方法是什么 Scenario Get the request Id url base
  • 如何获取插入计算机的可移动驱动器的列表?

    我想获取插入计算机的可移动驱动程序的列表 我怎样才能做到这一点pywin32Python 中的模块 注意 重要的是我能够将可移动驱动器与固定驱动器分开 该算法很简单 Call MS Docs GetGetLogicalDriveString
  • WP8 SDK 导入服务参考无法进行基于任务的操作

    到目前为止 在 VS2012 中使用 生成基于任务的操作 导入服务引用似乎不起作用 它变灰了 对 WPF 新项目的测试运行良好 我可以选择基于任务的操作或异步操作 有没有一种简单的方法可以将异步调用包装在任务中 有没有一种简单的方法可以将异
  • 如何更改 Google 静态地图中的视角?

    是否可以更改 google 静态地图中的视角 就像在 Google 地图 API 中如何更改一样 这里检查 setTilt 函数 https developers google com maps documentation javascri
  • 即使应用程序终止,iOS 也会更新位置

    即使应用程序终止 我也尝试更新用户位置 我向我的 plist 添加了地图和后台模式 gt 位置更新 并设置了一个本地通知 该通知将在位置更新时触发 但它从未被解雇 我有这个AppDelegate h interface AppDelegat
  • 使用 DeviceLifecycleEvents 源的 IoT 中心消息路由不起作用

    我已经在使用 IoT 中心并配置了消息路由来路由TwinChangeEvents到事件中心 一个 Azure 函数EventHubTrigger处理消息 这工作得很好 现在 我想配置消息路由来路由DeviceLifecycleEvents到
  • Bootstrap 抛出未捕获错误:Bootstrap 的 JavaScript 需要 jQuery [关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我正在尝试使用 Bootstrap 为程序制作界面 我将 jQuery 1 11 0 添加到标记并认为就是这样 但是当我在浏览器中启动网页时 jQuery 报告错误 Uncaught Er
  • $( "

    选择器有什么作用 div div 这段代码中的语法是什么意思 我见过像这样的选择器div or someId但我很困惑什么 div div means function log message div div text message pr
  • Cakephp 覆盖 HtmlHelper::link

    我想设置 HtmlHelper link 方法 以便默认选项数组具有 escape false 如何在不改变核心类的情况下实现这一目标 OBS 我已经清理了表单输入 所以我想这不会有问题 提前致谢 蛋糕2 1 5 我刚刚实现了这个 我想指出
  • 使用 f2py 将 numpy 字符串格式数组传递给 fortran

    我的目标是从 fortran 中的 python numpy 数组打印第二个字符串 但我只打印第一个字符 而且它也不一定是正确的字符串 谁能告诉我将完整字符串数组传递给 Fortran 的正确方法是什么 代码如下 测试py import n
  • 在tasklet中退出Spring Batch作业

    我有一个 Spring Batch tasklet 但我不知道如何从它失败 我想检查某些参数 如果它们不存在 则该步骤的作业失败 Component public class Tfp211SetupTasklet extends Abstr