This commit is contained in:
jxxghp 2024-02-25 16:43:21 +08:00
parent 7d76ee2e65
commit 6b24ccdc35

View File

@ -41,7 +41,7 @@ class Scheduler(metaclass=Singleton):
# 定时服务 # 定时服务
_scheduler = BackgroundScheduler(timezone=settings.TZ, _scheduler = BackgroundScheduler(timezone=settings.TZ,
executors={ executors={
'default': ThreadPoolExecutor(20) 'default': ThreadPoolExecutor(100)
}) })
# 退出事件 # 退出事件
_event = threading.Event() _event = threading.Event()
@ -292,14 +292,16 @@ class Scheduler(metaclass=Singleton):
# 开始注册插件服务 # 开始注册插件服务
for service in plugin_services: for service in plugin_services:
try: try:
sid = f"{pid}_{service['id']}" sid = f"{service['id']}"
self._jobs[sid] = { job_id = sid.split("|")[0]
"func": service["func"], if job_id not in self._jobs:
"name": service["name"], self._jobs[job_id] = {
"pid": pid, "func": service["func"],
"plugin_name": plugin_name, "name": service["name"],
"running": False, "pid": pid,
} "plugin_name": plugin_name,
"running": False,
}
self._scheduler.add_job( self._scheduler.add_job(
self.start, self.start,
service["trigger"], service["trigger"],
@ -307,12 +309,12 @@ class Scheduler(metaclass=Singleton):
name=service["name"], name=service["name"],
**service["kwargs"], **service["kwargs"],
kwargs={ kwargs={
'job_id': sid 'job_id': job_id
} }
) )
logger.info(f"注册插件服务({plugin_name}){service['name']}") logger.info(f"注册插件{plugin_name}服务{service['name']} - {service['trigger']}")
except Exception as e: except Exception as e:
logger.error(f"注册插件服务失败:{str(e)} - {service}") logger.error(f"注册插件{plugin_name}服务失败:{str(e)} - {service}")
def remove_plugin_job(self, pid: str): def remove_plugin_job(self, pid: str):
""" """
@ -350,12 +352,13 @@ class Scheduler(metaclass=Singleton):
name = service.get("name") name = service.get("name")
plugin_name = service.get("plugin_name") plugin_name = service.get("plugin_name")
if service.get("running") and name and plugin_name: if service.get("running") and name and plugin_name:
if name not in added:
added.append(name)
schedulers.append(schemas.ScheduleInfo( schedulers.append(schemas.ScheduleInfo(
id=job_id, id=job_id,
name=name, name=name,
provider=plugin_name, provider=plugin_name,
status="正在运行", status="正在运行",
next_run="~"
)) ))
# 获取其他待执行任务 # 获取其他待执行任务
for job in jobs: for job in jobs:
@ -374,7 +377,7 @@ class Scheduler(metaclass=Singleton):
schedulers.append(schemas.ScheduleInfo( schedulers.append(schemas.ScheduleInfo(
id=job_id, id=job_id,
name=job.name, name=job.name,
provider=service.get("plugin_name", "MoviePilot"), provider=service.get("plugin_name", "系统"),
status=status, status=status,
next_run=next_run next_run=next_run
)) ))