我们可以等待PeopleSoft应用程序引擎等待异步消息完成吗



我正在尝试处理一个数据上传,我正在尝试在应用程序引擎中通过Integration Broker通过PeopleSoft异步发布消息。关键是能够发送多条消息并在同一节点中使用它们。在我发送消息之前,我将数据存储在一个表(比如T1)上,以存储上传文件中的所有字段值。

在消费时,我试图将每个消息公开给组件接口,并且异常记录到同一个表T1中。假设我们为每个事务标记表字段(比如Processed_flag='Y')。

我需要一种机制,可以等待所有异步消息完成。我正在考虑检查T1表,如果T1表上有Processed_flag为'N'的行,只需让线程睡眠更多时间。当所有的消息都没有被处理时,让它保持睡眠状态,不要让应用程序引擎完成。

我能得到的唯一好处是,我不必同时等待多个实例,也不必进行同步调用。整个想法是由不同的事务使用该组件(就好像它是由100个人使用的->100个事务)。

除非这100笔交易完成,否则我们将确保T1表记录了发生的事情。如果出现问题,它可以记录CI捕获的异常。

如对这一做法有任何意见,我们将不胜感激。提前感谢!

我们正在采取不同的方法。即使我们能够在应用程序引擎完成之前验证这些表上的数据,异步发送消息的整个想法也毫无用处。在这种情况下,使用同步消息会更好,并并行运行进程。

因此,我们决定让应用程序引擎通过消息完成并发布所有数据块,并确保消息在同一节点中完全消耗掉。

  1. 我们将更新表T1,用于所有处理的/成功的/失败的行,因为我们不断消耗消息并根据需要使用它们。

  2. 我们将为所有发布和使用的行保留一个审计或计数器。因为将同一个组件暴露给多个事务将对性能产生巨大影响。我们希望确保它的性能更好,就好像50个用户正在使用相同的CI(当然是不同的实例)更新组件后面的相同表一样。我将完成我的概念验证,希望它比并行运行流程要好得多。

我希望这能帮助任何处理这些上传问题的人。谢谢

最新更新