我有两个不同的操作,但是我同时从同一主机获取这两个操作的响应。
我想要延迟其中一个操作30秒。 我尝试使用
由于这两个操作都是后台进程,因此我无法使用ExecuteAndWaitInterceptor。 以下是我想要延迟的操作。
我想要延迟其中一个操作30秒。 我尝试使用
Thread.sleep(30000)
,但是似乎会延迟这两个操作。由于这两个操作都是后台进程,因此我无法使用ExecuteAndWaitInterceptor。 以下是我想要延迟的操作。
@Namespace(StrutsConstants.Namespace.PUBLIC)
public class CCAveDNHandlerAction extends BaseRequestResponseAwareAction {
private static Log log = LogFactory.getLog(CCAveDNHandlerAction.class);
public String execute() throws ModuleException {
log.info("CCAveDNHandlerAction ### Starting..");
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
e.printStackTrace();
}
Struts2文档表示,两个不同的请求在两个不同的线程中执行。
但在这种情况下并没有发生。可能是因为这两个请求来自同一主机。有没有办法强制执行一个动作以在单独的上下文中运行?
以下是工作流程:
- 用户被重定向到外部支付网关页面。
- 用户进行成功付款并重定向回我的应用程序中的预定义操作。
- 同时,支付网关向我的应用程序的另一个操作发送另一个响应。(这是次要响应)
- 我使用
Thread.sleep
来暂停此操作,并暂停整个过程。 - 我只想暂停次要响应。我该怎么做?