在 liferay 中实现对用户登录事件的异步调用的最佳方法

Best way to implement async call on User login event in liferay

在 liferay 6.2 中,我们需要在用户登录时与 Web 服务进行通信,并且调用应该是异步的,即用户登录继续而不受 Web 服务调用的影响(即使在远程异常)。

我不确定在哪里可以插入对此 Web 服务的调用。我试过: 1. User Model Listener => 它会停止,直到远程调用完成(我在 @onBeforeUpdate 和 @onAfterUpdate 添加了调用) 2. 用户登录post action => 在远程调用结束前停止。

我了解了异步调用的消息传递实现,这是唯一的前进方向吗,还是可以有一种我忽略的更简单的方法?

谢谢!

Liferay 中没有您可以使用的开箱即用的异步方法 - 只有同步方法。但是,如果您调用的 Web 服务是异步实现的,它不会停止 Liferay 挂钩的执行。你必须检查你的网络服务的实现,为什么它在不应该的时候阻止执行(正如你所说的"it's expected to be asynchronous")。