跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 「求助」gunicorn+flask 如何实现多进程同步?
未分類
31 12 月 2020

「求助」gunicorn+flask 如何实现多进程同步?

「求助」gunicorn+flask 如何实现多进程同步?

資深大佬 : LiebeLee 6

刚接手了一个公司内部用的项目,用的是 gunicorn+Flask 写的一个 web 服务。 由于执行的有部分业务是分析数据,耗时较长,所以想将该流程拆分,将分析任务拆分成小粒度的流程,自己请求自己,将任务分派给其他 worker 。 但是因为要控制执行分析任务的个数,避免占用太多资源,想用共享变量进行同步,而 gunicorn 框架的多进程是在其框架代码内部 fork 的,不清楚该如何实现进程间同步,请各位指点~ 文件结构 :

|–app |– init.py |– module1 |– module2 |– gun.conf

app/init.py from flask import Flask app = Flask(name)

使用 gunicorn -c gun.conf app:app 的方式启动 gun.conf 指定 worker_class = ‘gevent’

感谢!

大佬有話說 (11)

  • 資深大佬 : knightdf

    直接丢给 celery 做不行么?

  • 資深大佬 : maocat

    rpc ?

  • 主 資深大佬 : LiebeLee

    @knightdf 之前没接触过,项目里也没有这个,我们想尽量少引入新的模块或者组件依赖,不过也可以去了解一下,多谢!

  • 主 資深大佬 : LiebeLee

    @maocat 啥意思?这个本身应该也算 rpc,只是分派任务的 worker 需要知道总共有多少个 worker 在做分析任务(包括不是这次分派出去的),要约束总的跑分析任务的 worker 个数,避免阻塞其他业务。

  • 資深大佬 : julyclyde

    建议把 web 和实际处理分离开

  • 資深大佬 : iConnect

    单独启动一个应用去处理数据,除非你的数据是和 web 上下文绑定,否则没必要混在一起搞。

  • 資深大佬 : SjwNo1

    分析数据实时性邀请高吗,不高的话异步或者交给 crontab

  • 資深大佬 : SjwNo1

    @SjwNo1 邀请高吗 –> 要求高吗

  • 資深大佬 : frankchen

    用 celery~

  • 資深大佬 : 0bit

    推进试试 RQ ( https://python-rq.org/ ),比 Celery 要简单。
    这种场景下没必要自己折腾多进程通信什么的,引入一个简单的库,用 task queue,比什么都香。

  • 資深大佬 : 0bit

    推进 -> 推荐

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具