From 122b49431cb80fa0c721cc6998d32a0dc60e0ab8 Mon Sep 17 00:00:00 2001 From: Donghuang Date: Mon, 11 Oct 2021 17:24:32 +0800 Subject: [PATCH] timeout no error --- .../yo/openapi/controller/AgentEventController.java | 11 ++++++----- .../pudonghot/yo/openapi/response/RespAgentEvent.java | 5 ++++- server/src/main/resources/application.yml | 2 ++ 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/server/src/main/java/com/pudonghot/yo/openapi/controller/AgentEventController.java b/server/src/main/java/com/pudonghot/yo/openapi/controller/AgentEventController.java index 7ef87600..72c2179e 100644 --- a/server/src/main/java/com/pudonghot/yo/openapi/controller/AgentEventController.java +++ b/server/src/main/java/com/pudonghot/yo/openapi/controller/AgentEventController.java @@ -13,7 +13,6 @@ import com.pudonghot.yo.model.exception.ErrorCode; import com.pudonghot.yo.openapi.auth.SessionAbility; import com.pudonghot.yo.service.CommonAgentStatusService; import com.pudonghot.yo.openapi.service.AgentEventService; -import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.context.request.async.DeferredResult; @@ -30,8 +29,7 @@ public class AgentEventController implements SessionAbility { private CommonAgentStatusService agentStatusService; @Autowired private AgentEventService agentEventService; - @Value("${yo.server.web-async-timeout:48000}") - private Long webAsyncTimeout; + private final Object EMPTY = new Object(); @RequestMapping("/resource/agentevent/{account}") public DeferredResult agentEvent( @@ -44,7 +42,7 @@ public class AgentEventController implements SessionAbility { new Search(Agent.TENANT_ID, getTenantId()) .eq(Agent.ACCOUNT, account)); - val result = new DeferredResult(webAsyncTimeout); + val result = new DeferredResult(); if (agent == null) { result.setResult(errorModel(ErrorCode.AGENT_NOT_FOUND)); @@ -78,7 +76,10 @@ public class AgentEventController implements SessionAbility { if (!agentEventService.fetchTempEvent(agent, result)) { agentEventService.put(eventKey, result); result.onCompletion(() -> agentEventService.remove(eventKey, result)); - result.onTimeout(() -> agentEventService.remove(eventKey, result)); + result.onTimeout(() -> { + result.setResult(EMPTY); + agentEventService.remove(eventKey, result); + }); } agentEventService.updateSession(agent); diff --git a/server/src/main/java/com/pudonghot/yo/openapi/response/RespAgentEvent.java b/server/src/main/java/com/pudonghot/yo/openapi/response/RespAgentEvent.java index 89322a0a..48638132 100644 --- a/server/src/main/java/com/pudonghot/yo/openapi/response/RespAgentEvent.java +++ b/server/src/main/java/com/pudonghot/yo/openapi/response/RespAgentEvent.java @@ -3,6 +3,7 @@ package com.pudonghot.yo.openapi.response; import lombok.Getter; import lombok.Setter; import lombok.ToString; +import java.io.Serializable; import lombok.RequiredArgsConstructor; import com.pudonghot.yo.model.agentevent.AgentEvent; @@ -14,6 +15,8 @@ import com.pudonghot.yo.model.agentevent.AgentEvent; @Getter @ToString @RequiredArgsConstructor -public class RespAgentEvent { +public class RespAgentEvent implements Serializable { + private static final long serialVersionUID = 1L; + private final AgentEvent event; } diff --git a/server/src/main/resources/application.yml b/server/src/main/resources/application.yml index c1c9c903..385ba85c 100644 --- a/server/src/main/resources/application.yml +++ b/server/src/main/resources/application.yml @@ -55,6 +55,8 @@ dubbo: base-packages: com.pudonghot.yo yo: + server: + web-async-timeout: 14600 datasource: url: jdbc:mysql://172.16.4.6/yoqw?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useLegacyDatetimeCode=false&serverTimezone=Asia/Shanghai username: yoqw