diff options
author | Yuki-Asuuna <[email protected]> | 2022-03-06 17:08:00 +0800 |
---|---|---|
committer | Yuki-Asuuna <[email protected]> | 2022-03-06 17:08:00 +0800 |
commit | 0ec099e421ba0f315d10fb59c34e43172b0487c0 (patch) | |
tree | 8a4fbb8650ffbe6cd9d12efbef8fa03cf793fc6e /ATRI/plugins/bilibili_dynamic | |
parent | 218f279bb875b29347df16a6d7dfd461dada6744 (diff) | |
download | ATRI-0ec099e421ba0f315d10fb59c34e43172b0487c0.tar.gz ATRI-0ec099e421ba0f315d10fb59c34e43172b0487c0.tar.bz2 ATRI-0ec099e421ba0f315d10fb59c34e43172b0487c0.zip |
fix: 添加动态订阅功能对订阅开启/禁止的调用逻辑
Change-Id: I2288750784295722329fddf1b1df520e27566921
Diffstat (limited to 'ATRI/plugins/bilibili_dynamic')
-rw-r--r-- | ATRI/plugins/bilibili_dynamic/__init__.py | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/ATRI/plugins/bilibili_dynamic/__init__.py b/ATRI/plugins/bilibili_dynamic/__init__.py index 63b2e54..c2ba04d 100644 --- a/ATRI/plugins/bilibili_dynamic/__init__.py +++ b/ATRI/plugins/bilibili_dynamic/__init__.py @@ -1,3 +1,7 @@ +from apscheduler.triggers.base import BaseTrigger +from apscheduler.triggers.combining import AndTrigger +from apscheduler.triggers.interval import IntervalTrigger + from ATRI.utils.apscheduler import scheduler from ATRI.utils import timestamp2datetime @@ -130,11 +134,24 @@ from queue import Queue tq = Queue() +class BilibiliDynamicCheckEnabledTrigger(BaseTrigger): + # 自定义trigger 保证服务开启 + # 实现abstract方法 <get_next_fire_time> + def get_next_fire_time(self, previous_fire_time, now): + subscriptor = BilibiliDynamicSubscriptor() + config = subscriptor.load_service() + if config["enabled"] == False: + return None + else: + return now + + # 业务逻辑 # 每10s从任务队列中拉一个uid出来,调用api进行查询 # 当任务队列为空时,从数据库读取订阅列表,并塞入任务队列tq中 @scheduler.scheduled_job( - "interval", name="b站动态检查", seconds=10, max_instances=3, misfire_grace_time=60 + AndTrigger([IntervalTrigger(seconds=10), + BilibiliDynamicCheckEnabledTrigger()]), name="b站动态检查", max_instances=3, misfire_grace_time=60 ) async def _check_dynamic(): from ATRI.database.models import Subscription |