feat BestFilmVersion 立即运行改为异步

This commit is contained in:
mayun110 2023-08-09 09:33:35 +08:00
parent d16c7b3133
commit dacce76de9

View File

@ -1,9 +1,10 @@
import datetime from datetime import datetime, timedelta
from functools import reduce from functools import reduce
from pathlib import Path from pathlib import Path
from typing import Optional, Any, List, Dict, Tuple from typing import Optional, Any, List, Dict, Tuple
from xml.dom.minidom import parseString from xml.dom.minidom import parseString
import pytz
from apscheduler.schedulers.background import BackgroundScheduler from apscheduler.schedulers.background import BackgroundScheduler
from apscheduler.triggers.cron import CronTrigger from apscheduler.triggers.cron import CronTrigger
from requests import Response from requests import Response
@ -71,37 +72,38 @@ class BestFilmVersion(_PluginBase):
self._webhook_enabled = config.get("webhook_enabled") self._webhook_enabled = config.get("webhook_enabled")
self._only_once = config.get("only_once") self._only_once = config.get("only_once")
if self._enabled and not self._webhook_enabled: if self._enabled:
self._scheduler = BackgroundScheduler(timezone=settings.TZ) self._scheduler = BackgroundScheduler(timezone=settings.TZ)
if self._cron: if not self._webhook_enabled:
try: if self._cron:
self._scheduler.add_job(func=self.sync, try:
trigger=CronTrigger.from_crontab(self._cron), self._scheduler.add_job(func=self.sync,
name="收藏洗版") trigger=CronTrigger.from_crontab(self._cron),
except Exception as err: name="收藏洗版")
logger.error(f"定时任务配置错误:{err}") except Exception as err:
# 推送实时消息 logger.error(f"定时任务配置错误:{err}")
self.systemmessage.put(f"执行周期配置错误:{err}") # 推送实时消息
else: self.systemmessage.put(f"执行周期配置错误:{err}")
self._scheduler.add_job(self.sync, "interval", minutes=30, name="收藏洗版") else:
self._scheduler.add_job(self.sync, "interval", minutes=30, name="收藏洗版")
if self._only_once:
self._only_once = False
self.update_config({
"enabled": self._enabled,
"cron": self._cron,
"notify": self._notify,
"webhook_enabled": self._webhook_enabled,
"only_once": self._only_once
})
self._scheduler.add_job(self.sync, 'date',
run_date=datetime.now(tz=pytz.timezone(settings.TZ)) + timedelta(seconds=3),
name="立即运行收藏洗版")
# 启动任务 # 启动任务
if self._scheduler.get_jobs(): if self._scheduler.get_jobs():
self._scheduler.print_jobs() self._scheduler.print_jobs()
self._scheduler.start() self._scheduler.start()
if self._enabled and self._only_once:
self._only_once = False
self.update_config({
"enabled": self._enabled,
"cron": self._cron,
"notify": self._notify,
"webhook_enabled": self._webhook_enabled,
"only_once": self._only_once
})
self.sync()
def get_state(self) -> bool: def get_state(self) -> bool:
return self._enabled return self._enabled