From 5fba41688ad6ff280fe2a032c2d4a8e8e215fc44 Mon Sep 17 00:00:00 2001 From: Yeuoly Date: Sat, 18 Oct 2025 20:12:20 +0800 Subject: [PATCH] refactor: cleaning up terrible data --- api/controllers/console/app/workflow_trigger.py | 2 +- ...p_triggers_when_app_published_workflow_updated.py | 4 +++- api/models/__init__.py | 12 ++++++++---- .../sqlalchemy_workflow_trigger_log_repository.py | 2 +- api/repositories/workflow_trigger_log_repository.py | 2 +- api/schedule/workflow_schedule_task.py | 4 ++-- api/services/async_workflow_service.py | 3 ++- api/services/trigger/schedule_service.py | 3 ++- api/tasks/async_workflow_tasks.py | 3 ++- api/tasks/workflow_schedule_tasks.py | 2 +- .../unit_tests/services/test_schedule_service.py | 3 ++- 11 files changed, 25 insertions(+), 15 deletions(-) diff --git a/api/controllers/console/app/workflow_trigger.py b/api/controllers/console/app/workflow_trigger.py index 5fe7d02bf4..506bd98dfd 100644 --- a/api/controllers/console/app/workflow_trigger.py +++ b/api/controllers/console/app/workflow_trigger.py @@ -13,7 +13,7 @@ from extensions.ext_database import db from fields.workflow_trigger_fields import trigger_fields, triggers_list_fields, webhook_trigger_fields from libs.login import current_user, login_required from models.model import Account, AppMode -from models.workflow import AppTrigger, AppTriggerStatus, WorkflowWebhookTrigger +from models.trigger import AppTrigger, AppTriggerStatus, WorkflowWebhookTrigger logger = logging.getLogger(__name__) diff --git a/api/events/event_handlers/update_app_triggers_when_app_published_workflow_updated.py b/api/events/event_handlers/update_app_triggers_when_app_published_workflow_updated.py index eb83ac090e..39fe8ab26f 100644 --- a/api/events/event_handlers/update_app_triggers_when_app_published_workflow_updated.py +++ b/api/events/event_handlers/update_app_triggers_when_app_published_workflow_updated.py @@ -6,7 +6,9 @@ from sqlalchemy.orm import Session from core.workflow.nodes import NodeType from events.app_event import app_published_workflow_was_updated from extensions.ext_database import db -from models import AppMode, AppTrigger, AppTriggerStatus, Workflow +from models import AppMode +from models.trigger import AppTrigger, AppTriggerStatus +from models.workflow import Workflow @app_published_workflow_was_updated.connect diff --git a/api/models/__init__.py b/api/models/__init__.py index 195e5afc93..1589305165 100644 --- a/api/models/__init__.py +++ b/api/models/__init__.py @@ -79,12 +79,17 @@ from .tools import ( ToolModelInvoke, WorkflowToolProvider, ) -from .trigger import TriggerOAuthSystemClient, TriggerOAuthTenantClient, TriggerSubscription -from .web import PinnedConversation, SavedMessage -from .workflow import ( +from .trigger import ( AppTrigger, AppTriggerStatus, AppTriggerType, + TriggerOAuthSystemClient, + TriggerOAuthTenantClient, + TriggerSubscription, + WorkflowSchedulePlan, +) +from .web import PinnedConversation, SavedMessage +from .workflow import ( ConversationVariable, Workflow, WorkflowAppLog, @@ -93,7 +98,6 @@ from .workflow import ( WorkflowNodeExecutionOffload, WorkflowNodeExecutionTriggeredFrom, WorkflowRun, - WorkflowSchedulePlan, WorkflowType, ) diff --git a/api/repositories/sqlalchemy_workflow_trigger_log_repository.py b/api/repositories/sqlalchemy_workflow_trigger_log_repository.py index fb13972e29..609a802b73 100644 --- a/api/repositories/sqlalchemy_workflow_trigger_log_repository.py +++ b/api/repositories/sqlalchemy_workflow_trigger_log_repository.py @@ -9,7 +9,7 @@ from typing import Any, Optional from sqlalchemy import and_, delete, func, select, update from sqlalchemy.orm import Session -from models.workflow import WorkflowTriggerLog, WorkflowTriggerStatus +from models.trigger import WorkflowTriggerLog, WorkflowTriggerStatus from repositories.workflow_trigger_log_repository import TriggerLogOrderBy, WorkflowTriggerLogRepository diff --git a/api/repositories/workflow_trigger_log_repository.py b/api/repositories/workflow_trigger_log_repository.py index 46e945b892..634b6b831c 100644 --- a/api/repositories/workflow_trigger_log_repository.py +++ b/api/repositories/workflow_trigger_log_repository.py @@ -11,7 +11,7 @@ from datetime import datetime from enum import StrEnum from typing import Optional, Protocol -from models.workflow import WorkflowTriggerLog, WorkflowTriggerStatus +from models.trigger import WorkflowTriggerLog, WorkflowTriggerStatus class TriggerLogOrderBy(StrEnum): diff --git a/api/schedule/workflow_schedule_task.py b/api/schedule/workflow_schedule_task.py index 30e00ee27c..41e2232353 100644 --- a/api/schedule/workflow_schedule_task.py +++ b/api/schedule/workflow_schedule_task.py @@ -8,7 +8,7 @@ from configs import dify_config from extensions.ext_database import db from libs.datetime_utils import naive_utc_now from libs.schedule_utils import calculate_next_run_at -from models.workflow import AppTrigger, AppTriggerStatus, AppTriggerType, WorkflowSchedulePlan +from models.trigger import AppTrigger, AppTriggerStatus, AppTriggerType, WorkflowSchedulePlan from services.workflow.queue_dispatcher import QueueDispatcherManager from tasks.workflow_schedule_tasks import run_schedule_trigger @@ -99,7 +99,7 @@ def _process_schedules(session: Session, schedules: list[WorkflowSchedulePlan]) return 0, 0 dispatcher_manager = QueueDispatcherManager() - tasks_to_dispatch = [] + tasks_to_dispatch: list[str] = [] rate_limited_count = 0 for schedule in schedules: diff --git a/api/services/async_workflow_service.py b/api/services/async_workflow_service.py index bc30709ff9..b3074be296 100644 --- a/api/services/async_workflow_service.py +++ b/api/services/async_workflow_service.py @@ -18,7 +18,8 @@ from extensions.ext_redis import redis_client from models.account import Account from models.enums import CreatorUserRole from models.model import App, EndUser -from models.workflow import Workflow, WorkflowTriggerLog, WorkflowTriggerStatus +from models.trigger import WorkflowTriggerLog, WorkflowTriggerStatus +from models.workflow import Workflow from repositories.sqlalchemy_workflow_trigger_log_repository import SQLAlchemyWorkflowTriggerLogRepository from services.errors.app import InvokeDailyRateLimitError, WorkflowNotFoundError from services.workflow.entities import AsyncTriggerResponse, TriggerData, WorkflowTaskData diff --git a/api/services/trigger/schedule_service.py b/api/services/trigger/schedule_service.py index 333eeb2cc4..54b6befa91 100644 --- a/api/services/trigger/schedule_service.py +++ b/api/services/trigger/schedule_service.py @@ -11,7 +11,8 @@ from core.workflow.nodes.trigger_schedule.entities import ScheduleConfig, Schedu from core.workflow.nodes.trigger_schedule.exc import ScheduleConfigError, ScheduleNotFoundError from libs.schedule_utils import calculate_next_run_at, convert_12h_to_24h from models.account import Account, TenantAccountJoin -from models.workflow import Workflow, WorkflowSchedulePlan +from models.trigger import WorkflowSchedulePlan +from models.workflow import Workflow logger = logging.getLogger(__name__) diff --git a/api/tasks/async_workflow_tasks.py b/api/tasks/async_workflow_tasks.py index 798f454b0e..6af62c97a9 100644 --- a/api/tasks/async_workflow_tasks.py +++ b/api/tasks/async_workflow_tasks.py @@ -20,7 +20,8 @@ from extensions.ext_database import db from models.account import Account from models.enums import CreatorUserRole from models.model import App, EndUser, Tenant -from models.workflow import Workflow, WorkflowTriggerLog, WorkflowTriggerStatus +from models.trigger import WorkflowTriggerLog, WorkflowTriggerStatus +from models.workflow import Workflow from repositories.sqlalchemy_workflow_trigger_log_repository import SQLAlchemyWorkflowTriggerLogRepository from services.errors.app import WorkflowNotFoundError from services.workflow.entities import AsyncTriggerExecutionResult, AsyncTriggerStatus, TriggerData, WorkflowTaskData diff --git a/api/tasks/workflow_schedule_tasks.py b/api/tasks/workflow_schedule_tasks.py index 078039913e..873906d38e 100644 --- a/api/tasks/workflow_schedule_tasks.py +++ b/api/tasks/workflow_schedule_tasks.py @@ -15,7 +15,7 @@ from core.workflow.nodes.trigger_schedule.exc import ( ) from extensions.ext_database import db from models.enums import WorkflowRunTriggeredFrom -from models.workflow import WorkflowSchedulePlan +from models.trigger import WorkflowSchedulePlan from services.async_workflow_service import AsyncWorkflowService from services.trigger.schedule_service import ScheduleService from services.workflow.entities import TriggerData diff --git a/api/tests/unit_tests/services/test_schedule_service.py b/api/tests/unit_tests/services/test_schedule_service.py index cd94ccd5bc..f3f9fbec80 100644 --- a/api/tests/unit_tests/services/test_schedule_service.py +++ b/api/tests/unit_tests/services/test_schedule_service.py @@ -12,7 +12,8 @@ from events.event_handlers.sync_workflow_schedule_when_app_published import ( ) from libs.schedule_utils import calculate_next_run_at, convert_12h_to_24h from models.account import Account, TenantAccountJoin -from models.workflow import Workflow, WorkflowSchedulePlan +from models.trigger import WorkflowSchedulePlan +from models.workflow import Workflow from services.trigger.schedule_service import ScheduleService