问题描述
|
我正在研究基于Camel的小型流程引擎的PoC。需求必须具有执行一系列后果步骤的能力,并且每个步骤都可能需要数小时才能执行。在这种情况下,异步通信风格是很明显的选择,但是我很难正确地处理“过程”部分。
向外部系统发送消息时,我需要等待完成。只要可能要花费很多时间,我就在考虑在发送消息后停止对具体步骤的处理,然后在收到完成消息后开始新的“作业”。因此,从字面上讲,每个步骤的处理都将从在同一JMS队列处开始的Camel路由处理,然后基于内容的路由器将根据消息的标头或其内容决定执行哪个具体逻辑。
但是,问题在于如何避免潜在的消息丢失。例如,在具体步骤中,我正在发送消息并停止处理。外部系统由于某种原因未处理消息,因此我的系统未收到任何通知。这意味着除非其他组件将生成消息将其唤醒,否则进程将被卡住。
另外,只要可以在任何时间关闭系统,我都必须构建逻辑以在重新启动后继续处理消息(这意味着某种消息持久性,重新交付和事务管理策略)。
所有这些问题加在一起,因此我想请经验丰富的Camel拥护者就如何使用Camel设计这种逻辑提供建议。我知道专用的BPM产品或ESB可能会更轻松地解决此问题,但我不想夸大解决方案。
我们欢迎任何建议,尤其是在骆驼功能方面,可以帮助简化解决方案。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)