fix 插件分身服务注册

This commit is contained in:
jxxghp
2025-05-30 16:59:54 +08:00
parent 2c0e06d599
commit b4473bb4a7
2 changed files with 10 additions and 13 deletions
+1 -5
View File
@@ -526,11 +526,7 @@ def clone_plugin(plugin_id: str,
if success: if success:
# 注册插件服务 # 注册插件服务
Scheduler().update_plugin_job(message) reload_plugin(message)
# 注册菜单命令
Command().init_commands(message)
# 注册插件API
register_plugin_api(message)
# 将分身插件添加到原插件所在的文件夹中 # 将分身插件添加到原插件所在的文件夹中
_add_clone_to_plugin_folder(plugin_id, message) _add_clone_to_plugin_folder(plugin_id, message)
return schemas.Response(success=True, message="插件分身创建成功") return schemas.Response(success=True, message="插件分身创建成功")
+9 -8
View File
@@ -540,17 +540,18 @@ class Scheduler(metaclass=Singleton):
self.remove_plugin_job(pid) self.remove_plugin_job(pid)
# 获取插件服务列表 # 获取插件服务列表
with self._lock: with self._lock:
plugin_manager = PluginManager()
try: try:
plugin_services = PluginManager().get_plugin_services(pid=pid) plugin_services = plugin_manager.get_plugin_services(pid=pid)
except Exception as e: except Exception as e:
logger.error(f"运行插件 {pid} 服务失败:{str(e)} - {traceback.format_exc()}") logger.error(f"运行插件 {pid} 服务失败:{str(e)} - {traceback.format_exc()}")
return return
# 获取插件名称 # 获取插件名称
plugin_name = PluginManager().get_plugin_attr(pid, "plugin_name") plugin_name = plugin_manager.get_plugin_attr(pid, "plugin_name")
# 开始注册插件服务 # 开始注册插件服务
for service in plugin_services: for service in plugin_services:
try: try:
sid = f"{service['id']}" sid = f"{pid}_{service['id']}"
job_id = sid.split("|")[0] job_id = sid.split("|")[0]
self.remove_plugin_job(pid, job_id) self.remove_plugin_job(pid, job_id)
self._jobs[job_id] = { self._jobs[job_id] = {
@@ -599,8 +600,8 @@ class Scheduler(metaclass=Singleton):
name = service.get("name") name = service.get("name")
provider_name = service.get("provider_name") provider_name = service.get("provider_name")
if service.get("running") and name and provider_name: if service.get("running") and name and provider_name:
if name not in added: if job_id not in added:
added.append(name) added.append(job_id)
schedulers.append(schemas.ScheduleInfo( schedulers.append(schemas.ScheduleInfo(
id=job_id, id=job_id,
name=name, name=name,
@@ -609,11 +610,11 @@ class Scheduler(metaclass=Singleton):
)) ))
# 获取其他待执行任务 # 获取其他待执行任务
for job in jobs: for job in jobs:
if job.name not in added: job_id = job.id.split("|")[0]
added.append(job.name) if job_id not in added:
added.append(job_id)
else: else:
continue continue
job_id = job.id.split("|")[0]
service = self._jobs.get(job_id) service = self._jobs.get(job_id)
if not service: if not service:
continue continue