简体   繁体   English

Java EE 批处理作业可以等待事件吗?

[英]Could Java EE Batch Job wait event?

I should implement business flow with many async calls to external system: I send async SOAP and don't wait it (I only get ack), response (SOAP message on my endpoint) can be send back in hours and than I continue my flow.我应该通过对外部系统的许多异步调用来实现业务流程:我发送异步 SOAP 并且不要等待它(我只收到确认),响应(端点上的 SOAP 消息)可以在几小时内发回,然后我继续我的流程. Could java ee batch (JSR 352) do this? java ee batch (JSR 352) 可以这样做吗? Or I should to look up something else?或者我应该查查别的?

UPDATE: One is possible simple solution is that one step would read data from blocking queue, but I don't like this solution.更新:一种可能的简单解决方案是一步从阻塞队列中读取数据,但我不喜欢这种解决方案。 I could lock my flow if count of waiting step would be more than available threads如果等待步骤的数量超过可用线程数,我可以锁定我的流程

UDPATE2: UDPATE2:

<job id="myJob" xmlns="http://xmlns.jcp.org/xml/ns/javaee" version="1.0">
    <step id="myStep" next="myStep2" >
        <batchlet ref=".MyBatchlet"/>
        <stop on="COMPLETED" />
    </step>
    <step id="myStep2" >
        <batchlet ref="MyBatchlet2"/>
    </step>
</job>

I could continue by this code:我可以通过这个代码继续:

long jid = jo.start("myJob", new Properties());
long jid2 = jo.restart(jid, new Properties());

MyBatchlet2 never starts MyBatchlet2 永远不会启动

据我所知,没有开箱即用的方式来实现您想要的,但也许您可以使用 stop() 和 restart() 方法来实现解决方法

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM