mirror of
https://github.com/langgenius/dify.git
synced 2025-12-19 17:27:16 -05:00
Merge remote-tracking branch 'origin/feat/trigger' into feat/trigger
This commit is contained in:
@@ -57,7 +57,7 @@ class PluginTriggerDebugEvent(BaseDebugEvent):
|
|||||||
provider_id = kwargs["provider_id"]
|
provider_id = kwargs["provider_id"]
|
||||||
subscription_id = kwargs["subscription_id"]
|
subscription_id = kwargs["subscription_id"]
|
||||||
event_name = kwargs["event_name"]
|
event_name = kwargs["event_name"]
|
||||||
return f"trigger_debug_waiting_pool:{tenant_id}:{str(provider_id)}:{subscription_id}:{event_name}"
|
return f"plugin_trigger_debug_waiting_pool:{tenant_id}:{str(provider_id)}:{subscription_id}:{event_name}"
|
||||||
|
|
||||||
|
|
||||||
class WebhookDebugEvent(BaseDebugEvent):
|
class WebhookDebugEvent(BaseDebugEvent):
|
||||||
@@ -79,7 +79,7 @@ class WebhookDebugEvent(BaseDebugEvent):
|
|||||||
tenant_id = kwargs["tenant_id"]
|
tenant_id = kwargs["tenant_id"]
|
||||||
app_id = kwargs["app_id"]
|
app_id = kwargs["app_id"]
|
||||||
node_id = kwargs["node_id"]
|
node_id = kwargs["node_id"]
|
||||||
return f"trigger_debug_waiting_pool:{tenant_id}:{app_id}:{node_id}"
|
return f"webhook_trigger_debug_waiting_pool:{tenant_id}:{app_id}:{node_id}"
|
||||||
|
|
||||||
|
|
||||||
class TriggerDebugService:
|
class TriggerDebugService:
|
||||||
|
|||||||
@@ -38,6 +38,7 @@ from models.workflow import Workflow, WorkflowNodeExecutionModel, WorkflowNodeEx
|
|||||||
from repositories.factory import DifyAPIRepositoryFactory
|
from repositories.factory import DifyAPIRepositoryFactory
|
||||||
from services.enterprise.plugin_manager_service import PluginCredentialType
|
from services.enterprise.plugin_manager_service import PluginCredentialType
|
||||||
from services.errors.app import IsDraftWorkflowError, WorkflowHashNotEqualError
|
from services.errors.app import IsDraftWorkflowError, WorkflowHashNotEqualError
|
||||||
|
from services.workflow.entities import PluginTriggerData, ScheduleTriggerData
|
||||||
from services.workflow.workflow_converter import WorkflowConverter
|
from services.workflow.workflow_converter import WorkflowConverter
|
||||||
|
|
||||||
from .errors.workflow_service import DraftWorkflowDeletionError, WorkflowInUseError
|
from .errors.workflow_service import DraftWorkflowDeletionError, WorkflowInUseError
|
||||||
@@ -633,6 +634,10 @@ class WorkflowService:
|
|||||||
)
|
)
|
||||||
if node_type == NodeType.TRIGGER_WEBHOOK:
|
if node_type == NodeType.TRIGGER_WEBHOOK:
|
||||||
start_data = WebhookData.model_validate(node_data)
|
start_data = WebhookData.model_validate(node_data)
|
||||||
|
elif node_type == NodeType.TRIGGER_PLUGIN:
|
||||||
|
start_data = PluginTriggerData.model_validate(node_data)
|
||||||
|
elif node_type == NodeType.TRIGGER_SCHEDULE:
|
||||||
|
start_data = ScheduleTriggerData.model_validate(node_data)
|
||||||
else:
|
else:
|
||||||
start_data = StartNodeData.model_validate(node_data)
|
start_data = StartNodeData.model_validate(node_data)
|
||||||
user_inputs = _rebuild_file_for_user_inputs_in_start_node(
|
user_inputs = _rebuild_file_for_user_inputs_in_start_node(
|
||||||
|
|||||||
@@ -58,11 +58,12 @@ def dispatch_triggered_workflows_async(
|
|||||||
|
|
||||||
try:
|
try:
|
||||||
logger.info(
|
logger.info(
|
||||||
"Starting async trigger dispatching for endpoint=%s, events=%s, request_id=%s, timestamp=%s",
|
"Starting trigger dispatching endpoint=%s, events=%s, request_id=%s, subscription_id=%s, provider_id=%s",
|
||||||
endpoint_id,
|
endpoint_id,
|
||||||
events,
|
events,
|
||||||
request_id,
|
request_id,
|
||||||
timestamp,
|
subscription_id,
|
||||||
|
provider_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
# Verify request exists in storage
|
# Verify request exists in storage
|
||||||
@@ -155,14 +156,25 @@ def dispatch_triggered_workflows_async(
|
|||||||
event=event,
|
event=event,
|
||||||
pool_key=pool_key,
|
pool_key=pool_key,
|
||||||
)
|
)
|
||||||
|
logger.debug(
|
||||||
|
"Trigger debug dispatched %d sessions to pool %s for event %s for subscription %s provider %s",
|
||||||
|
debug_dispatched,
|
||||||
|
pool_key,
|
||||||
|
event_name,
|
||||||
|
subscription_id,
|
||||||
|
provider_id,
|
||||||
|
)
|
||||||
|
|
||||||
except Exception:
|
except Exception:
|
||||||
# Silent failure for debug dispatch
|
# Silent failure for debug dispatch
|
||||||
logger.exception("Failed to dispatch to debug sessions")
|
logger.exception("Failed to dispatch to debug sessions")
|
||||||
|
|
||||||
logger.info(
|
logger.info(
|
||||||
"Completed async trigger dispatching: processed %d/%d triggers",
|
"Completed async trigger dispatching: processed %d/%d triggers for subscription %s and provider %s",
|
||||||
dispatched_count,
|
dispatched_count,
|
||||||
len(events),
|
len(events),
|
||||||
|
subscription_id,
|
||||||
|
provider_id,
|
||||||
)
|
)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -174,9 +186,11 @@ def dispatch_triggered_workflows_async(
|
|||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.exception(
|
logger.exception(
|
||||||
"Error in async trigger dispatching for endpoint %s data %s",
|
"Error in async trigger dispatching for endpoint %s data %s for subscription %s and provider %s",
|
||||||
endpoint_id,
|
endpoint_id,
|
||||||
dispatch_data,
|
dispatch_data,
|
||||||
|
subscription_id,
|
||||||
|
provider_id,
|
||||||
)
|
)
|
||||||
return {
|
return {
|
||||||
"status": "failed",
|
"status": "failed",
|
||||||
|
|||||||
Reference in New Issue
Block a user