From b4473bb4a754e7bdf4c69ad7fca450daa2a4fe78 Mon Sep 17 00:00:00 2001 From: jxxghp Date: Fri, 30 May 2025 16:59:54 +0800 Subject: [PATCH] =?UTF-8?q?fix=20=E6=8F=92=E4=BB=B6=E5=88=86=E8=BA=AB?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=B3=A8=E5=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/endpoints/plugin.py | 6 +----- app/scheduler.py | 17 +++++++++-------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/app/api/endpoints/plugin.py b/app/api/endpoints/plugin.py index 1672ac4e..26cbb34b 100644 --- a/app/api/endpoints/plugin.py +++ b/app/api/endpoints/plugin.py @@ -526,11 +526,7 @@ def clone_plugin(plugin_id: str, if success: # 注册插件服务 - Scheduler().update_plugin_job(message) - # 注册菜单命令 - Command().init_commands(message) - # 注册插件API - register_plugin_api(message) + reload_plugin(message) # 将分身插件添加到原插件所在的文件夹中 _add_clone_to_plugin_folder(plugin_id, message) return schemas.Response(success=True, message="插件分身创建成功") diff --git a/app/scheduler.py b/app/scheduler.py index 878c21df..9d0f3be5 100644 --- a/app/scheduler.py +++ b/app/scheduler.py @@ -540,17 +540,18 @@ class Scheduler(metaclass=Singleton): self.remove_plugin_job(pid) # 获取插件服务列表 with self._lock: + plugin_manager = PluginManager() try: - plugin_services = PluginManager().get_plugin_services(pid=pid) + plugin_services = plugin_manager.get_plugin_services(pid=pid) except Exception as e: logger.error(f"运行插件 {pid} 服务失败:{str(e)} - {traceback.format_exc()}") 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: try: - sid = f"{service['id']}" + sid = f"{pid}_{service['id']}" job_id = sid.split("|")[0] self.remove_plugin_job(pid, job_id) self._jobs[job_id] = { @@ -599,8 +600,8 @@ class Scheduler(metaclass=Singleton): name = service.get("name") provider_name = service.get("provider_name") if service.get("running") and name and provider_name: - if name not in added: - added.append(name) + if job_id not in added: + added.append(job_id) schedulers.append(schemas.ScheduleInfo( id=job_id, name=name, @@ -609,11 +610,11 @@ class Scheduler(metaclass=Singleton): )) # 获取其他待执行任务 for job in jobs: - if job.name not in added: - added.append(job.name) + job_id = job.id.split("|")[0] + if job_id not in added: + added.append(job_id) else: continue - job_id = job.id.split("|")[0] service = self._jobs.get(job_id) if not service: continue