我如何实现一个必须读取列表然后为列表中的每个项目重复一个或多个步骤的SpringBatch作业?我目前正在一步读取列表,然后将其放入作业上下文中。但是作业上下文保留在数据库中,如果它变得太大,则必须使用CLOB而我无权访问它。所以我正在寻找一种不涉及将整个列表存储在作业上下文中的解决方案。当然,我可以简单地将列表放在局部变量中。但我很好奇是否有更像SpringBatch的选项。 最佳答案 除了上面关于首先构建作业的评论(我倾向于同意)之外,如果您使用最新的3.0.0.M3,您可以创建一个JobScope'ed在您循环执行各个步骤时可
使用Spring批处理,我希望我的步骤跨节点分布,并让它们针对给定的作业执行。我有一个用例,其中一个作业有多个步骤,每个步骤都可以在托管应用程序的多个节点中运行。有人试过这个吗?任何关于相同的想法将不胜感激! 最佳答案 有两种方法:Remotechunking-您在主节点上读取数据并在从节点上处理/写入数据Remotepartitioning-您将数据集分成多个分区,并在远程节点中读取/处理/写入您的分区。所以master只是协调和决定如何划分分区。我写了一本关于EnterpriseSpring的书,并创建了这两种方法的示例。这些是
我们有现有的SpringBatch应用程序,我们希望使其可扩展以在多个节点上运行。SpringBatch的可扩展性文档涉及代码更改和配置更改。我只是想知道这是否可以仅通过更改配置来实现(添加新类并将其连接到配置中很好,但只是想避免对现有类进行代码更改)。非常感谢您的提前帮助。 最佳答案 这真的取决于你的情况。具体来说,为什么要在多个节点上运行?您试图克服的瓶颈是什么?SpringBatch开箱即用地处理跨多个节点扩展的典型两个场景是远程分块和远程分区。两者都是主/从配置,但每个都有不同的用例。当步骤中的处理器是瓶颈时,使用远程分块。
我使用SpringBatch使用2个(可能更多,为简单起见假设2个)数据库。一个用于存储所有作业数据(所有BATCH_*表)。另一个用于实际运行我的业务逻辑数据。有些事情我不太明白。当我声明我的JobRepository时,我已经指定了我的TransactionManager,为什么我必须在我的tasklet上再做一次?(我不是故意使用默认名称的)我目前正在为tasklet提供与我的JobRepository相同的TrasactionManager,它管理与我在步骤中所做的不同的连接。这是否意味着我在作者或读者内部进行了自己的事务管理?如果#2为真,HowdoesSpringBatch
团队,我正在做一个从平面文件中读取记录并将数据插入数据库的技术poc。我正在使用block任务并成功地使用springbatchadmin运行这个作业。我必须实现重试策略以及设置每次重试之间的时间间隔的功能。我坚持设置每次重试之间的时间间隔,因为查克不直接支持它。有什么解决方法吗?我的代码是 最佳答案 在您的情况下,配置将如下所示:SpringBatch2.x...不幸的是,batch命名空间不支持将backOffPolicy直接设置为step,参见BATCH-1441.Spring批量3.0在SpringBatch3.0中,一些类
你好,我想制作一个ImageButton,禁用的图像应该是灰色的。我使用皮肤和.json文件来定义它。有没有比复制所有图像并将它们添加到texturepacker更好的方法来获得灰色图像? 最佳答案 我认为实现此目的的最佳方式(甚至是唯一方式)是使用shaders.请注意,着色器本身就是一个完整的主题,但一旦掌握甚至熟悉,就可以为您的游戏提供许多很酷的功能,例如使图像变灰。关于您的问题:首先需要的是着色器,它们会影响您的图像(或者,在我们的例子中,ImageButton),并将它们染成灰色。幸运的是,这些着色器已由其他人实现,作为对
我编写了一个lambda,它被s3存储桶触发以解压缩zip文件并处理其中的文本文档。由于lambda的内存限制,我需要将我的进程转移到AWS批处理之类的东西上。如果我错了请纠正我,但我的工作流程应该是这样的。workflow我相信我需要编写一个lambda来将s3存储桶的位置放在亚马逊SQS上,如果AWS批处理可以读取该位置并进行所有解压缩/数据处理,它们的内存更大。这是我当前的lambda,它接收由s3存储桶触发的事件,检查它是否是一个zip文件,然后将该s3key的名称推送到SQS。我应该告诉AWSbatch在我的lambda中开始读取队列吗?总的来说,我对AWS完全陌生,不确定从
我正在使用以下xml创建一个SpringBatch作业:-->-->这是我的读者类:privateStringURL;publicStringgetURL(){returnURL;}publicvoidsetURL(StringuRL){URL=uRL;}publicArrayListread()throwsException,UnexpectedInputException,ParseException,NonTransientResourceException{ArrayListlist=newArrayList();String[]splitStocks=URL.split(",
我实际上发现了Spring,并且我能够设置一些作业。现在,我想使用Hibernate/JPA将导入的数据保存在数据库中,但我不断收到此错误:14:46:43.500[main]ERRORo.s.b.core.step.AbstractStep-Encounteredanerrorexecutingthestepjavax.persistence.TransactionRequiredException:notransactionisinprogress我发现问题出在交易上。这是我的entityManager和transactionManager的springjava配置:@Config
我正在构建一个包含以下过程的spring-batch解决方案:第1步:将一个列表拆分为多个列表第2步:处理每个子列表第3步:合并子列表生成的子列表可以并行处理,根据spring-batch文档,这是支持的。遗憾的是,我只能找到以并行步骤开始的spring-batch示例作业,而不是按顺序开始的示例。以下作业将不会编译。Spring给我一个错误:'无法解析第2步'那么我如何配置作业先运行一个步骤,然后并行运行多个步骤,然后再运行最后一个步骤? 最佳答案 我偶然发现了这个问题,询问拆分是如何工作的,也许这个答案晚了一点(一年),但我走了