【问题标题】:Can we wait for PeopleSoft application engine to wait for the asynchronous messages to complete?我们可以等待 PeopleSoft 应用程序引擎等待异步消息完成吗?
【发布时间】:2014-02-25 18:01:58
【问题描述】:

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

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

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

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

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

任何采用这种方法的 cmets 将不胜感激。提前致谢!

【问题讨论】:

    标签: asynchronous integration peoplesoft peoplesoft-app-engine


    【解决方案1】:

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2020-10-04
      • 1970-01-01
      • 2023-03-15
      • 2019-05-31
      • 2019-06-16
      • 2018-03-05
      • 1970-01-01
      • 2021-12-10
      • 1970-01-01
      相关资源
      最近更新 更多