0

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

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

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

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

除非这 100 个事务完成,否则我们将确保 T1 表记录发生和关闭的情况。如果出现问题,它可以记录 CI 捕获的异常。

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

4

1 回答 1

1

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

所以,我们决定让应用引擎完成并通过消息发布所有的数据块,并确保消息在同一个节点中被完全消费。

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

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

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

于 2014-02-27T18:51:12.537 回答