ui 目录是用户页面,有前后端代码。
非 ui 目录是另一个独立的项目,我把它称为 celery 项目,跟 ui 目录的代码并不能相互调用。
在 celery 项目中也有一个后端服务, worker\api\worker_server.py ,它可以由 ui 项目 ui\backend\src\services\celery_worker.py 启动该进程。并且发起请求。
例如,在 ui 项目中,用户点击了按钮,请求 search 到 ui 后端 ui\backend\routers\worker.py 的 /ctrl 接口中,然后 ui 后端再发起请求到 celery 项目的 worker\api\worker_router.py 中的 /search 接口。 celery 会在自己的数据库中读取数据库任务,并且提交到 redis 中。
在 ui 后端请求 celery 后端过程中,我希望根据 select_proxy 是 system 还是 pool 来决定传输什么参数。如果是 system ,则不用传代理,因为 celery /search 中的 worker 会启动一个浏览器,浏览器默认就是系统代理。如果是 pool ,则需要传递代理池数据。 代理池数据可以根据 ui 后端的 config.backend.host:config.backend.port 的 /api/proxy/proxies-pool 接口获取。例如:
Curl
curl -X 'GET' \
'http://localhost:5835/api/proxy/proxies-pool?force_refresh=false' \
-H 'accept: application/json'
Request URL
http://localhost:5835/api/proxy/proxies-pool?force_refresh=false
Server response
Code Details
200
Response body
Download
{
"proxies": [
"127.0.0.1:9660",
"127.0.0.1:9662",
"127.0.0.1:9664",
"127.0.0.1:9666",
"127.0.0.1:9668"
],
"cached": true
}
ui 目录是用户页面,有前后端代码。
非 ui 目录是另一个独立的项目,我把它称为 celery 项目,跟 ui 目录的代码并不能相互调用。
在 celery 项目中也有一个后端服务, worker\api\worker_server.py ,它可以由 ui 项目 ui\backend\src\services\celery_worker.py 启动该进程。
现在我不但想启动,还想自定义 celery 后端的主机和端口,由 ui 项目配置 Config.worker_backend 来决定。帮我修改完成代码。
上述代码似乎有很多问题,你来帮我判断:
worker\api\excel_load.py worker\api\main.py worker\api\search_cli.py
假设这3个文件是构成一个微服务,并且可以启动许多个微服务来批量执行任务。不过目前场景中只需要一个微服务 localhost:8003 。
然后我想在另一个独立的项目中发起微服务请求执行各种任务。 例如 G:\code\upwork\zhang_crawl_bio\ui\backend\main.py 文件是一个UI后端 localhost:5835 ,它跟前端交互。
现在用户在前端上传文件,我应该直接上传到 localhost:8003 还是经过 localhost:5835 进行路由? 如果不用 5835 路由,那么又该如何通知前端有两个 API 地址? 如果用 5835 路由,是否又符合最佳软件设计架构?