当我在Liberty服务器上多次运行一个作业(job)时,它总是采用我运行的第一个作业(job)的参数值,尽管我更改了这些值.因此,我不能使用不同的参数值多次运行作业(job).为什么? 如果我用不同的参数并行运行几个相同的作业(job),会发生什么情况?

我的JSL看起来像:

job id="VerbrauchsfolgeExecutor" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
  <properties>
    <property name="stichtag" value="#{jobParameters['stichtag']}" />
    <property name="filename" value="#{jobParameters['filename']}" />
    <property name="filetype" value="#{jobParameters['filetype']}" />
    <property name="groupSize" value="#{jobParameters['groupSize']}" />
    <property name="db2Umgebung" value="#{jobParameters['db2Umgebung']}" />
    <property name="loglevel" value="#{jobParameters['loglevel']}" />
  </properties>
  <step id="STEP1">
    <chunk item-count="100">
      <reader ref="VerbrauchsfolgeReader"></reader>
      <processor ref="VerbrauchsfolgeProcessor"></processor>
      <writer ref="VerbrauchsfolgeWriter"></writer>
    </chunk>
  </step>
</job>

正在读取属性:

...
@Inject
JobContext context;
...
Properties prop = context.getProperties();
String loglevel = prop.getProperty("loglevel");
...

求职电话:

...
.\batchManager submit --jobXMLName=VerbrauchsfolgeExecutor --applicationName=zos-verbrauchsfo
lge-1.0.0 --user=bob --trustSslCertificates --batchManager=localhost:9082 --jobParameter=stichtag=25.03.2022 --jobParame
ter=filename=dataset.out --jobParameter=filetype=RDW --jobParameter=groupSize=10 --jobParameter=db2Umgebung=E11 --jobPar
ameter=loglevel=INFO
...

当使用不同的参数值连续多次运行作业(job)时,这不是我所期望的行为.有没有人能帮我解决我的问题.

推荐答案

回答

不要对需要每个作业(job)实例数据的批处理构件使用@ApplicationScoped批注(如果您要在每次应用程序启动时运行多个作业(job)).也许另一种 Select 是对批处理构件使用@Dependent作用域,并将每个应用程序生命周期的实例数据移动到单独的@ApplicationScoped个Bean中,然后可以将其注入到批处理构件中.

解释

批处理构件可以作为CDI Bean加载,并且实例的作用域也是类似的,例如,对于用@ApplicationScoped注释的批处理构件,每次启动应用程序时,容器只会加载该类型的单个实例.这是雅加达Batch和CDI如何在雅加达平台内集成的一部分.

Java相关问答推荐

Android -如何修复Java.time.zone. ZoneRulesExcept:未知时区ID:Europe/Kyiv

Java:根据4象限中添加的行数均匀分布行的公式

如何使用Java API在Oracle ODI中运行模拟?

工件部署期间出错[Tomcat 8.5.45]

关于泛型的覆盖规则

嵌入式ActiveMQ Artemis Web控制台加载错误

蒙蒂霍尔比赛结果不正确

允许同时执行两个方法,但不能同时执行这两个方法

Java Telnet客户端重复的IAC符号

Dijkstra搜索算法的实现

为什么StandardOpenOption.CREATE不能通过Ubuntu在中小企业上运行?

FETCH类型设置为LAZY,但它仍会发送第二个请求

AbstractList保证溢出到其他方法

在不使用instanceof或强制转换的情况下从父类变量调用子类方法

如何在SWT菜单项文本中保留@字符

在单例类上获取Java锁,了解原因

我们可以在方法中声明接口吗?

java.util.LinkedList()是如何成为MutableList的实例的?

关于正则表达式的一个特定问题,该问题与固定宽度负向后看有关

睡眠在 Spring Boot 中