|
3 | 3 | import threading |
4 | 4 |
|
5 | 5 | from uuid import uuid4 |
6 | | -from datetime import datetime |
7 | 6 | from typing import Callable, List |
8 | 7 |
|
9 | 8 | from dotflow.core.context import Context |
10 | 9 | from dotflow.core.status.workflow import WorkflowStatus |
11 | 10 | from dotflow.core.task import Task |
12 | 11 | from dotflow.core.utils import exec |
| 12 | +from dotflow.core.decorators import time |
13 | 13 |
|
14 | 14 |
|
15 | 15 | class Controller: |
@@ -37,27 +37,20 @@ def _callback_workflow(self, result: Task): |
37 | 37 | else: |
38 | 38 | self.success(content=result) |
39 | 39 |
|
| 40 | + @time |
40 | 41 | def _excution(self, task: Task, previous_context: Context): |
41 | 42 | task.workflow_id = self.workflow_id |
42 | | - task.status = WorkflowStatus.IN_PROGRESS |
43 | | - start_time = datetime.now() |
| 43 | + task.set_status(WorkflowStatus.IN_PROGRESS) |
| 44 | + task.set_previous_context(previous_context) |
44 | 45 |
|
45 | 46 | try: |
46 | 47 | current_context = task.step(previous_context=previous_context) |
47 | | - duration = int((datetime.now() - start_time).total_seconds()) |
48 | | - |
49 | | - task.status = WorkflowStatus.COMPLETED |
50 | | - task.current_context = current_context |
51 | | - task.previous_context = previous_context |
52 | | - task.duration = duration |
| 48 | + task.set_status(WorkflowStatus.COMPLETED) |
| 49 | + task.set_current_context(current_context) |
53 | 50 |
|
54 | 51 | except Exception as error: |
55 | | - duration = int((datetime.now() - start_time).total_seconds()) |
56 | | - |
57 | | - task.status = WorkflowStatus.FAILED |
58 | | - task.previous_context = previous_context |
| 52 | + task.set_status(WorkflowStatus.FAILED) |
59 | 53 | task.error.append(error) |
60 | | - task.duration = duration |
61 | 54 |
|
62 | 55 | task.callback(content=task) |
63 | 56 | return task |
|
0 commit comments