|
@@ -40,6 +40,7 @@ from models.workflow import (
|
|
|
WorkflowRunStatus,
|
|
|
WorkflowRunTriggeredFrom,
|
|
|
)
|
|
|
+from services.workflow_service import WorkflowService
|
|
|
|
|
|
|
|
|
class WorkflowCycleManage(WorkflowIterationCycleManage):
|
|
@@ -97,7 +98,6 @@ class WorkflowCycleManage(WorkflowIterationCycleManage):
|
|
|
|
|
|
def _workflow_run_success(
|
|
|
self, workflow_run: WorkflowRun,
|
|
|
- start_at: float,
|
|
|
total_tokens: int,
|
|
|
total_steps: int,
|
|
|
outputs: Optional[str] = None,
|
|
@@ -107,7 +107,6 @@ class WorkflowCycleManage(WorkflowIterationCycleManage):
|
|
|
"""
|
|
|
Workflow run success
|
|
|
:param workflow_run: workflow run
|
|
|
- :param start_at: start time
|
|
|
:param total_tokens: total tokens
|
|
|
:param total_steps: total steps
|
|
|
:param outputs: outputs
|
|
@@ -116,7 +115,7 @@ class WorkflowCycleManage(WorkflowIterationCycleManage):
|
|
|
"""
|
|
|
workflow_run.status = WorkflowRunStatus.SUCCEEDED.value
|
|
|
workflow_run.outputs = outputs
|
|
|
- workflow_run.elapsed_time = time.perf_counter() - start_at
|
|
|
+ workflow_run.elapsed_time = WorkflowService.get_elapsed_time(workflow_run_id=workflow_run.id)
|
|
|
workflow_run.total_tokens = total_tokens
|
|
|
workflow_run.total_steps = total_steps
|
|
|
workflow_run.finished_at = datetime.now(timezone.utc).replace(tzinfo=None)
|
|
@@ -139,7 +138,6 @@ class WorkflowCycleManage(WorkflowIterationCycleManage):
|
|
|
|
|
|
def _workflow_run_failed(
|
|
|
self, workflow_run: WorkflowRun,
|
|
|
- start_at: float,
|
|
|
total_tokens: int,
|
|
|
total_steps: int,
|
|
|
status: WorkflowRunStatus,
|
|
@@ -150,7 +148,6 @@ class WorkflowCycleManage(WorkflowIterationCycleManage):
|
|
|
"""
|
|
|
Workflow run failed
|
|
|
:param workflow_run: workflow run
|
|
|
- :param start_at: start time
|
|
|
:param total_tokens: total tokens
|
|
|
:param total_steps: total steps
|
|
|
:param status: status
|
|
@@ -159,7 +156,7 @@ class WorkflowCycleManage(WorkflowIterationCycleManage):
|
|
|
"""
|
|
|
workflow_run.status = status.value
|
|
|
workflow_run.error = error
|
|
|
- workflow_run.elapsed_time = time.perf_counter() - start_at
|
|
|
+ workflow_run.elapsed_time = WorkflowService.get_elapsed_time(workflow_run_id=workflow_run.id)
|
|
|
workflow_run.total_tokens = total_tokens
|
|
|
workflow_run.total_steps = total_steps
|
|
|
workflow_run.finished_at = datetime.now(timezone.utc).replace(tzinfo=None)
|
|
@@ -542,7 +539,6 @@ class WorkflowCycleManage(WorkflowIterationCycleManage):
|
|
|
if isinstance(event, QueueStopEvent):
|
|
|
workflow_run = self._workflow_run_failed(
|
|
|
workflow_run=workflow_run,
|
|
|
- start_at=self._task_state.start_at,
|
|
|
total_tokens=self._task_state.total_tokens,
|
|
|
total_steps=self._task_state.total_steps,
|
|
|
status=WorkflowRunStatus.STOPPED,
|
|
@@ -565,7 +561,6 @@ class WorkflowCycleManage(WorkflowIterationCycleManage):
|
|
|
elif isinstance(event, QueueWorkflowFailedEvent):
|
|
|
workflow_run = self._workflow_run_failed(
|
|
|
workflow_run=workflow_run,
|
|
|
- start_at=self._task_state.start_at,
|
|
|
total_tokens=self._task_state.total_tokens,
|
|
|
total_steps=self._task_state.total_steps,
|
|
|
status=WorkflowRunStatus.FAILED,
|
|
@@ -583,7 +578,6 @@ class WorkflowCycleManage(WorkflowIterationCycleManage):
|
|
|
|
|
|
workflow_run = self._workflow_run_success(
|
|
|
workflow_run=workflow_run,
|
|
|
- start_at=self._task_state.start_at,
|
|
|
total_tokens=self._task_state.total_tokens,
|
|
|
total_steps=self._task_state.total_steps,
|
|
|
outputs=outputs,
|