|
|
|
|
@ -27,10 +27,12 @@ from core.repositories import SQLAlchemyWorkflowNodeExecutionRepository
|
|
|
|
|
from core.repositories.sqlalchemy_workflow_execution_repository import SQLAlchemyWorkflowExecutionRepository
|
|
|
|
|
from core.workflow.repository.workflow_execution_repository import WorkflowExecutionRepository
|
|
|
|
|
from core.workflow.repository.workflow_node_execution_repository import WorkflowNodeExecutionRepository
|
|
|
|
|
from core.workflow.variable_loader import DUMMY_VARIABLE_LOADER
|
|
|
|
|
from extensions.ext_database import db
|
|
|
|
|
from factories import file_factory
|
|
|
|
|
from models import Account, App, EndUser, Workflow, WorkflowNodeExecutionTriggeredFrom
|
|
|
|
|
from models.enums import WorkflowRunTriggeredFrom
|
|
|
|
|
from services.workflow_draft_variable_service import DraftVarLoader
|
|
|
|
|
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
@ -185,6 +187,7 @@ class WorkflowAppGenerator(BaseAppGenerator):
|
|
|
|
|
workflow_node_execution_repository: WorkflowNodeExecutionRepository,
|
|
|
|
|
streaming: bool = True,
|
|
|
|
|
workflow_thread_pool_id: Optional[str] = None,
|
|
|
|
|
variable_loader: DraftVarLoader = DUMMY_VARIABLE_LOADER,
|
|
|
|
|
) -> Union[Mapping[str, Any], Generator[str | Mapping[str, Any], None, None]]:
|
|
|
|
|
"""
|
|
|
|
|
Generate App response.
|
|
|
|
|
@ -219,6 +222,7 @@ class WorkflowAppGenerator(BaseAppGenerator):
|
|
|
|
|
queue_manager=queue_manager,
|
|
|
|
|
context=context,
|
|
|
|
|
workflow_thread_pool_id=workflow_thread_pool_id,
|
|
|
|
|
variable_loader=variable_loader,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
worker_thread = threading.Thread(target=worker_with_context)
|
|
|
|
|
@ -304,6 +308,10 @@ class WorkflowAppGenerator(BaseAppGenerator):
|
|
|
|
|
app_id=application_generate_entity.app_config.app_id,
|
|
|
|
|
triggered_from=WorkflowNodeExecutionTriggeredFrom.SINGLE_STEP,
|
|
|
|
|
)
|
|
|
|
|
var_loader = DraftVarLoader(
|
|
|
|
|
engine=db.engine,
|
|
|
|
|
app_id=application_generate_entity.app_config.app_id,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
return self._generate(
|
|
|
|
|
app_model=app_model,
|
|
|
|
|
@ -314,6 +322,7 @@ class WorkflowAppGenerator(BaseAppGenerator):
|
|
|
|
|
workflow_execution_repository=workflow_execution_repository,
|
|
|
|
|
workflow_node_execution_repository=workflow_node_execution_repository,
|
|
|
|
|
streaming=streaming,
|
|
|
|
|
variable_loader=var_loader,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def single_loop_generate(
|
|
|
|
|
@ -380,7 +389,10 @@ class WorkflowAppGenerator(BaseAppGenerator):
|
|
|
|
|
app_id=application_generate_entity.app_config.app_id,
|
|
|
|
|
triggered_from=WorkflowNodeExecutionTriggeredFrom.SINGLE_STEP,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
var_loader = DraftVarLoader(
|
|
|
|
|
engine=db.engine,
|
|
|
|
|
app_id=application_generate_entity.app_config.app_id,
|
|
|
|
|
)
|
|
|
|
|
return self._generate(
|
|
|
|
|
app_model=app_model,
|
|
|
|
|
workflow=workflow,
|
|
|
|
|
@ -390,6 +402,7 @@ class WorkflowAppGenerator(BaseAppGenerator):
|
|
|
|
|
workflow_execution_repository=workflow_execution_repository,
|
|
|
|
|
workflow_node_execution_repository=workflow_node_execution_repository,
|
|
|
|
|
streaming=streaming,
|
|
|
|
|
variable_loader=var_loader,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
def _generate_worker(
|
|
|
|
|
@ -398,6 +411,7 @@ class WorkflowAppGenerator(BaseAppGenerator):
|
|
|
|
|
application_generate_entity: WorkflowAppGenerateEntity,
|
|
|
|
|
queue_manager: AppQueueManager,
|
|
|
|
|
context: contextvars.Context,
|
|
|
|
|
variable_loader: DraftVarLoader,
|
|
|
|
|
workflow_thread_pool_id: Optional[str] = None,
|
|
|
|
|
) -> None:
|
|
|
|
|
"""
|
|
|
|
|
@ -431,6 +445,7 @@ class WorkflowAppGenerator(BaseAppGenerator):
|
|
|
|
|
application_generate_entity=application_generate_entity,
|
|
|
|
|
queue_manager=queue_manager,
|
|
|
|
|
workflow_thread_pool_id=workflow_thread_pool_id,
|
|
|
|
|
variable_loader=variable_loader,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
runner.run()
|
|
|
|
|
|