瀏覽代碼

chore: improve http executor configs (#7730)

Bowen Liang 7 月之前
父節點
當前提交
1262277714

+ 3 - 7
api/core/workflow/nodes/http_request/entities.py

@@ -5,10 +5,6 @@ from pydantic import BaseModel, ValidationInfo, field_validator
 from configs import dify_config
 from core.workflow.entities.base_node_data_entities import BaseNodeData
 
-MAX_CONNECT_TIMEOUT = dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT
-MAX_READ_TIMEOUT = dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT
-MAX_WRITE_TIMEOUT = dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT
-
 
 class HttpRequestNodeAuthorizationConfig(BaseModel):
     type: Literal[None, 'basic', 'bearer', 'custom']
@@ -41,9 +37,9 @@ class HttpRequestNodeBody(BaseModel):
 
 
 class HttpRequestNodeTimeout(BaseModel):
-    connect: int = MAX_CONNECT_TIMEOUT
-    read: int = MAX_READ_TIMEOUT
-    write: int = MAX_WRITE_TIMEOUT
+    connect: int = dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT
+    read: int = dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT
+    write: int = dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT
 
 
 class HttpRequestNodeData(BaseNodeData):

+ 15 - 16
api/core/workflow/nodes/http_request/http_request_node.py

@@ -3,6 +3,7 @@ from mimetypes import guess_extension
 from os import path
 from typing import cast
 
+from configs import dify_config
 from core.app.segments import parser
 from core.file.file_obj import FileTransferMethod, FileType, FileVar
 from core.tools.tool_file_manager import ToolFileManager
@@ -11,9 +12,6 @@ from core.workflow.entities.node_entities import NodeRunResult, NodeType
 from core.workflow.entities.variable_pool import VariablePool
 from core.workflow.nodes.base_node import BaseNode
 from core.workflow.nodes.http_request.entities import (
-    MAX_CONNECT_TIMEOUT,
-    MAX_READ_TIMEOUT,
-    MAX_WRITE_TIMEOUT,
     HttpRequestNodeData,
     HttpRequestNodeTimeout,
 )
@@ -21,9 +19,9 @@ from core.workflow.nodes.http_request.http_executor import HttpExecutor, HttpExe
 from models.workflow import WorkflowNodeExecutionStatus
 
 HTTP_REQUEST_DEFAULT_TIMEOUT = HttpRequestNodeTimeout(
-    connect=min(10, MAX_CONNECT_TIMEOUT),
-    read=min(60, MAX_READ_TIMEOUT),
-    write=min(20, MAX_WRITE_TIMEOUT),
+    connect=min(10, dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT),
+    read=min(60, dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT),
+    write=min(20, dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT),
 )
 
 
@@ -43,9 +41,9 @@ class HttpRequestNode(BaseNode):
                 'body': {'type': 'none'},
                 'timeout': {
                     **HTTP_REQUEST_DEFAULT_TIMEOUT.model_dump(),
-                    'max_connect_timeout': MAX_CONNECT_TIMEOUT,
-                    'max_read_timeout': MAX_READ_TIMEOUT,
-                    'max_write_timeout': MAX_WRITE_TIMEOUT,
+                    'max_connect_timeout': dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT,
+                    'max_read_timeout': dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT,
+                    'max_write_timeout': dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT,
                 },
             },
         }
@@ -92,17 +90,18 @@ class HttpRequestNode(BaseNode):
             },
         )
 
-    def _get_request_timeout(self, node_data: HttpRequestNodeData) -> HttpRequestNodeTimeout:
+    @staticmethod
+    def _get_request_timeout(node_data: HttpRequestNodeData) -> HttpRequestNodeTimeout:
         timeout = node_data.timeout
         if timeout is None:
             return HTTP_REQUEST_DEFAULT_TIMEOUT
 
-        timeout.connect = timeout.connect or HTTP_REQUEST_DEFAULT_TIMEOUT.connect
-        timeout.connect = min(timeout.connect, MAX_CONNECT_TIMEOUT)
-        timeout.read = timeout.read or HTTP_REQUEST_DEFAULT_TIMEOUT.read
-        timeout.read = min(timeout.read, MAX_READ_TIMEOUT)
-        timeout.write = timeout.write or HTTP_REQUEST_DEFAULT_TIMEOUT.write
-        timeout.write = min(timeout.write, MAX_WRITE_TIMEOUT)
+        timeout.connect = min(timeout.connect or HTTP_REQUEST_DEFAULT_TIMEOUT.connect,
+                              dify_config.HTTP_REQUEST_MAX_CONNECT_TIMEOUT)
+        timeout.read = min(timeout.read or HTTP_REQUEST_DEFAULT_TIMEOUT.read,
+                           dify_config.HTTP_REQUEST_MAX_READ_TIMEOUT)
+        timeout.write = min(timeout.write or HTTP_REQUEST_DEFAULT_TIMEOUT.write,
+                            dify_config.HTTP_REQUEST_MAX_WRITE_TIMEOUT)
         return timeout
 
     @classmethod