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

时间:2014-02-25 18:01:59

标签: asynchronous integration peoplesoft peoplesoft-app-engine

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

在消费时我试图将每条消息暴露给组件接口,并且异常记录在同一个表T1上。让我们说每个事务我们都在标记表字段(比如Processed_flag ='Y')。

我需要一种机制,我可以等待所有异步消息完成。我正在考虑检查T1表,如果T1表上有任何行,其中Processed_flag为'N',只需让线程休眠更长时间。虽然未处理所有消息,但仍保持睡眠状态,不要让应用程序引擎完成。

我能得到的唯一好处是我不必一次等待多个实例,也不必进行同步调用。整个想法是通过不同的交易来使用该组件(好像它被100个人使用 - > 100个交易)。

除非这100笔交易完成,否则我们将确保T1表格记录上下的内容。如果出现问题,它可以记录CI捕获的异常。

对此方法的任何评论都将不胜感激。提前谢谢!

1 个答案:

答案 0 :(得分:1)

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

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

  1. 我们将更新表T1,以便处理所有已处理/成功/失败的行,因为我们会继续使用这些消息并根据需要使用它们。

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

  3. 我希望这可以帮助处理这些上传问题的任何人。谢谢!