我正在尝试处理数据上传,我正在尝试通过PeopleSoft通过PeopleSoft在应用引擎中异步地发布消息。整个点是能够在同一节点中发送多个消息并将它们占用。在发送消息之前,我正在将数据存储在表(例如t1)上存储上载文件中的所有字段值。

同时消耗我试图将每个消息暴露给组件接口,并且将例外记录在同一表T1上。假设我们为每笔交易标记表字段(例如processed_flag='y')。

我需要一个我可以等待所有异步消息完成的机制。我正在考虑检查T1表,如果T1表上有任何行,那么Processed_flag是'n',只需使线程睡眠更多。虽然所有消息都没有处理,请保持睡眠状态,不要让应用引擎完成。

我可以得到的唯一好处是我不必一次等待多个实例,或者不必制作同步呼叫。整个想法是通过不同的事务使用组件(好像它由Say 100 Peeple - > 100项使用)。

除非这100个交易完成,否则我们将确保T1表会记录打开和关闭的内容。如果出现问题,它可以记录CI捕获的例外。

对这种方法的任何评论都可以理解。提前谢谢!

有帮助吗?

解决方案

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

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top