import arlo
This commit is contained in:
0
task/queue/__init__.py
Normal file
0
task/queue/__init__.py
Normal file
BIN
task/queue/__pycache__/__init__.cpython-312.pyc
Normal file
BIN
task/queue/__pycache__/__init__.cpython-312.pyc
Normal file
Binary file not shown.
BIN
task/queue/__pycache__/task_queue.cpython-312.pyc
Normal file
BIN
task/queue/__pycache__/task_queue.cpython-312.pyc
Normal file
Binary file not shown.
29
task/queue/task_queue.py
Normal file
29
task/queue/task_queue.py
Normal file
@ -0,0 +1,29 @@
|
||||
import importlib
|
||||
from functools import partial
|
||||
|
||||
from database.database import get_session
|
||||
from database.tscheduler.model import TScheduler
|
||||
from database.ttaskqueue.curd import get_tasks_to_finish, finish_task
|
||||
from log.log_manager import log
|
||||
from task.manager_task import execute_task
|
||||
|
||||
|
||||
def start_task_queue(scheduler: TScheduler):
|
||||
with get_session() as db:
|
||||
tasks = get_tasks_to_finish(db)
|
||||
if len(tasks) > 0:
|
||||
log(f'start task queue with task size {len(tasks)}')
|
||||
for task in tasks:
|
||||
# 1. 动态构建任务函数
|
||||
module = importlib.import_module(task.module_path)
|
||||
task_function = partial(execute_task, getattr(module, task.function_name))
|
||||
# 2. 执行任务
|
||||
task_function()
|
||||
# 3. 标记任务完成
|
||||
finish_task(db, task.id)
|
||||
# 4. 打印日志
|
||||
log(f"{task} finish")
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
start_task_queue(TScheduler())
|
||||
Reference in New Issue
Block a user