Home | Back


ตัวอย่าง Code สำหรับรัน WSGI Web Application ด้วย Gevent แบบ Multicore

Friday, 12 December 2014



ผมได้ทดลองสร้างตัวอย่าง Code สำหรับรัน WSGI Web Application ด้วย Gevent ที่สามารถทำงานแบบ Multicore ได้ ดังนี้ครับ

File : run.py

from app import app
from multiprocessing import Process, cpu_count
from gevent import monkey; monkey.patch_all()
from gevent.wsgi import WSGIServer
from gevent.server import _tcp_listener

import sys
    
def serve(port):
    listener = _tcp_listener(('', int(port)))

    def serve_forever(listener):
        WSGIServer(listener, app).serve_forever()

    for i in range(cpu_count()):
        Process(target=serve_forever, args=(listener,)).start()

    serve_forever(listener)

    
if __name__ == "__main__":
    serve(int(sys.argv[1]))


Home | Back