From f77164f90a34d5ac182435b2f403ff19fd1c874e Mon Sep 17 00:00:00 2001 From: jxxghp Date: Sat, 8 Jul 2023 09:16:53 +0800 Subject: [PATCH] multitasking --- app/chain/site.py | 26 ++++++++++++++------------ app/chain/subscribe.py | 22 ++++++++++++---------- app/main.py | 5 ++++- nginx.conf | 3 ++- 4 files changed, 32 insertions(+), 24 deletions(-) diff --git a/app/chain/site.py b/app/chain/site.py index 0e0ea1d0..fb23dea5 100644 --- a/app/chain/site.py +++ b/app/chain/site.py @@ -131,18 +131,20 @@ class SiteChain(ChainBase): """ if not arg_str: return - arg_str = str(arg_str).strip() - if not arg_str.isdigit(): - return - site_id = int(arg_str) - site = self.siteoper.get(site_id) - if not site: - self.post_message(title=f"站点编号 {site_id} 不存在!", userid=userid) - return - # 禁用站点 - self.siteoper.update(site_id, { - "is_active": True - }) + arg_strs = str(arg_str).split() + for arg_str in arg_strs: + arg_str = arg_str.strip() + if not arg_str.isdigit(): + continue + site_id = int(arg_str) + site = self.siteoper.get(site_id) + if not site: + self.post_message(title=f"站点编号 {site_id} 不存在!", userid=userid) + return + # 禁用站点 + self.siteoper.update(site_id, { + "is_active": True + }) # 重新发送消息 self.remote_list() diff --git a/app/chain/subscribe.py b/app/chain/subscribe.py index fc185f8e..103cb680 100644 --- a/app/chain/subscribe.py +++ b/app/chain/subscribe.py @@ -501,16 +501,18 @@ class SubscribeChain(ChainBase): self.post_message(title="请输入正确的命令格式:/subscribe_delete [id]," "[id]为订阅编号", userid=userid) return - arg_str = arg_str.strip() - if not arg_str.isdigit(): - return - subscribe_id = int(arg_str) - subscribe = self.subscribehelper.get(subscribe_id) - if not subscribe: - self.post_message(title=f"订阅编号 {subscribe_id} 不存在!", userid=userid) - return - # 删除订阅 - self.subscribehelper.delete(subscribe_id) + arg_strs = str(arg_str).split() + for arg_str in arg_strs: + arg_str = arg_str.strip() + if not arg_str.isdigit(): + continue + subscribe_id = int(arg_str) + subscribe = self.subscribehelper.get(subscribe_id) + if not subscribe: + self.post_message(title=f"订阅编号 {subscribe_id} 不存在!", userid=userid) + return + # 删除订阅 + self.subscribehelper.delete(subscribe_id) # 重新发送消息 self.remote_list() diff --git a/app/main.py b/app/main.py index c57d677d..9d01b845 100644 --- a/app/main.py +++ b/app/main.py @@ -1,3 +1,5 @@ +import multiprocessing + import uvicorn as uvicorn from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware @@ -26,7 +28,8 @@ App.add_middleware( ) # uvicorn服务 -Server = uvicorn.Server(Config(App, host=settings.HOST, port=settings.PORT, reload=settings.DEBUG)) +Server = uvicorn.Server(Config(App, host=settings.HOST, port=settings.PORT, + reload=settings.DEBUG, workers=multiprocessing.cpu_count())) def init_routers(): diff --git a/nginx.conf b/nginx.conf index 1f563f17..d98d6376 100644 --- a/nginx.conf +++ b/nginx.conf @@ -1,5 +1,6 @@ #user nobody; -worker_processes 1; +worker_processes auto; +worker_cpu_affinity auto; #error_log logs/error.log; #error_log logs/error.log notice;