gevent啟動(dòng)多進(jìn)程WSGI

使用gevent啟動(dòng)flask或是bottle web服務(wù)時(shí)默認(rèn)都是單進(jìn)程,并發(fā)性能有限。
可以使用gunicorn配合gevent來(lái)啟動(dòng)多進(jìn)程。
現(xiàn)在使用multiprocessing配合gevent來(lái)啟動(dòng)多進(jìn)程

from gevent import monkey
monkey.patch_all()

from gevent.pywsgi import WSGIServer
from multiprocessing import cpu_count, Process
from bottle import Bottle

app = Bottle()


@app.get("/")
def index():
    return {"hello": "world"}

server = WSGIServer(('', 8000), app, log=None)
server.start()

def serve_forever():
    server.start_accepting()
    server._stop_event.wait()

if __name__ == "__main__":
    # server.serve_forever()
    # 啟動(dòng)的進(jìn)程數(shù)為cpu個(gè)數(shù)
    for i in range(cpu_count()):
        p = Process(target=serve_forever)
        p.start()

這種是多進(jìn)程模式
單進(jìn)程模式:
1.屏蔽 server.start()
2.打開(kāi) server.serve_forever()
3.屏蔽 最后三行
使用多進(jìn)程啟動(dòng)的服務(wù)要比單進(jìn)程的并發(fā)高出很多倍
多進(jìn)程模式是比較理想的

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 前述 進(jìn)程 線程 協(xié)程 異步 并發(fā)編程(不是并行)目前有四種方式:多進(jìn)程、多線程、協(xié)程和異步。 多進(jìn)程編程在pyt...
    卷卷_麥芽呀閱讀 21,885評(píng)論 0 6
  • 前述 進(jìn)程 線程 協(xié)程 異步 并發(fā)編程(不是并行)目前有四種方式:多進(jìn)程、多線程、協(xié)程和異步。 多進(jìn)程編程在pyt...
    softlns閱讀 6,393評(píng)論 2 24
  • 必備的理論基礎(chǔ) 1.操作系統(tǒng)作用: 隱藏丑陋復(fù)雜的硬件接口,提供良好的抽象接口。 管理調(diào)度進(jìn)程,并將多個(gè)進(jìn)程對(duì)硬件...
    drfung閱讀 3,745評(píng)論 0 5
  • 進(jìn)程 線程 協(xié)程 異步 并發(fā)編程(不是并行)目前有四種方式:多進(jìn)程、多線程、協(xié)程和異步。 多進(jìn)程編程在python...
    hugoren閱讀 5,065評(píng)論 1 4
  • Python 3的多進(jìn)程 多進(jìn)程庫(kù)名叫multiprocessing。有幾點(diǎn)記錄一下: multiprocessi...
    小溫侯閱讀 3,628評(píng)論 0 2

友情鏈接更多精彩內(nèi)容