Skip to content

Commit 9014cdb

Browse files
committed
feat: Trigger handler init
1 parent 6ae728d commit 9014cdb

5 files changed

Lines changed: 142 additions & 0 deletions

File tree

apps/trigger/handler/base_task.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# coding=utf-8
2+
"""
3+
@project: MaxKB
4+
@Author:虎虎
5+
@file: base_task.py
6+
@date:2026/1/14 19:03
7+
@desc:
8+
"""
9+
from abc import ABC, abstractmethod
10+
11+
12+
class BaseTriggerTask(ABC):
13+
"""
14+
任务执行器抽象
15+
"""
16+
17+
@abstractmethod
18+
def support(self, trigger_task, **kwargs):
19+
pass
20+
21+
@abstractmethod
22+
def execute(self, trigger_task, **kwargs):
23+
pass
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# coding=utf-8
2+
"""
3+
@project: MaxKB
4+
@Author:虎虎
5+
@file: Trigger.py
6+
@date:2026/1/14 18:45
7+
@desc:
8+
"""
9+
10+
from abc import ABC, abstractmethod
11+
12+
13+
class BaseTrigger(ABC):
14+
"""
15+
触发器抽象
16+
"""
17+
18+
@abstractmethod
19+
def support(self, trigger, **kwargs):
20+
pass
21+
22+
@abstractmethod
23+
def deploy(self, trigger, **kwargs):
24+
pass
25+
26+
@abstractmethod
27+
def undeploy(self, trigger, **kwargs):
28+
pass
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# coding=utf-8
2+
"""
3+
@project: MaxKB
4+
@Author:虎虎
5+
@file: application_task.py
6+
@date:2026/1/14 19:14
7+
@desc:
8+
"""
9+
from trigger.handler.base_task import BaseTriggerTask
10+
11+
12+
class ApplicationTask(BaseTriggerTask):
13+
def support(self, trigger_task, **kwargs):
14+
return trigger_task.get('source_type') == 'APPLICATION'
15+
16+
def execute(self, trigger_task, **kwargs):
17+
pass
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# coding=utf-8
2+
"""
3+
@project: MaxKB
4+
@Author:虎虎
5+
@file: scheduled_trigger.py
6+
@date:2026/1/14 18:57
7+
@desc:
8+
"""
9+
from trigger.handler.base_trigger import BaseTrigger
10+
11+
12+
class ScheduledTrigger(BaseTrigger):
13+
14+
def support(self, trigger, **kwargs):
15+
return trigger.get('trigger_type') == 'SCHEDULED'
16+
17+
def deploy(self, trigger, **kwargs):
18+
pass
19+
20+
def undeploy(self, trigger, **kwargs):
21+
pass
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
# coding=utf-8
2+
"""
3+
@project: MaxKB
4+
@Author:虎虎
5+
@file: simple_task.py
6+
@date:2026/1/14 19:18
7+
@desc:
8+
"""
9+
from trigger.handler.impl.task.application_task import ApplicationTask
10+
from trigger.handler.impl.trigger.scheduled_trigger import ScheduledTrigger
11+
12+
simple_task_handlers = [ApplicationTask]
13+
14+
simple_trigger_handlers = [ScheduledTrigger]
15+
16+
17+
def execute(trigger_task, **kwargs):
18+
"""
19+
执行触发器任务
20+
@param trigger_task: 触发器任务数据
21+
@param kwargs: 额外数据
22+
@return:
23+
"""
24+
for simple_task_handler in simple_task_handlers:
25+
if simple_task_handler.support(trigger_task, **kwargs):
26+
return simple_task_handler.execute(trigger_task, **kwargs)
27+
raise Exception("不支持的处理器类型")
28+
29+
30+
def deploy(trigger, **kwargs):
31+
"""
32+
部署触发器
33+
@param trigger: 触发器字典数据
34+
@param kwargs: 额外数据
35+
@return:
36+
"""
37+
for simple_trigger_handler in simple_trigger_handlers:
38+
if simple_trigger_handler.support(trigger, **kwargs):
39+
return simple_trigger_handler.deploy(trigger, **kwargs)
40+
raise Exception("不支持的触发器类型")
41+
42+
43+
def undeploy(trigger, **kwargs):
44+
"""
45+
取消部署触发器
46+
@param trigger: 触发器字典数据
47+
@param kwargs: 额外数据
48+
@return:
49+
"""
50+
for simple_trigger_handler in simple_trigger_handlers:
51+
if simple_trigger_handler.support(trigger, **kwargs):
52+
return simple_trigger_handler.undeploy(trigger, **kwargs)
53+
raise Exception("不支持的触发器类型")

0 commit comments

Comments
 (0)