python 使用uwsgi 開啟多程序服務

2021-10-04 17:21:06 字數 3136 閱讀 6822

通常,我們使用flask起好了乙個服務後,希望使用多程序來更高效的使用我們的服務,讓我們的服務能更大的處理併發,這裡記錄使用uwsgi的乙個簡單的使用案例。

flask服務

編寫uwsgi配置檔案

uwsgi使用

總結參考

這裡我們模擬乙個簡單分詞的http服務,服務的輸入輸出如下:

使用者輸入:字串的query

服務輸出:分詞結果

服務的**如下:

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# 中文分詞的 flask http 服務

# @time : 2020/4/2 14:59

# @author : macan

# @mail :[email protected]

# @file : flask_seg_service.py

from __future__ import absolute_import

from __future__ import division

from __future__ import print_function

import flask

from flask import jsonify, request

import jieba

defencode_response

(code=

0, msg=

"ok"

, data=

none):

""" 編碼服務返回介面的資料結構

:param code:

:param msg:

:param data:

:return:

"""if data is

none

: data =

return

defanalysis

(query)

:"""

http服務的邏輯

:param query:

:return:

"""ifnot query:

response = encode_response(msg=

"query must input"

)else

:try

: seg_list =

list

(jieba.cut(query)

) response = encode_response(data=

)except exception as e:

response = encode_response(code=

1, msg=

str(e)

)return response

'/zh_seg_service_get'

, methods=

["get"])

defzh_seg_service_get()

: query = request.args.get(

"query",""

) response = analysis(query)

return jsonify(response)

'/zh_seg_service_post'

, methods=

["post"])

defzh_seg_service_post()

: query = request.form.get(

"query",""

) response = analysis(query)

return jsonify(response)

if __name__ ==

'__main__'

:'0.0.0.0'

, port=

12345

)

這個例子中,我們使用flask封裝了乙個http服務,服務的埠是12345, 其支援post和get方法。

需要注意的是

postman 訪問

在postman 中,我們就可以這樣訪問我們的服務了

返回的資料結構如下:

,

"message"

:"ok"

}

curl請求
curl

"我愛中國"

寫好了falsk服務後,uwsgi的服務配置檔案千篇一律,下面是乙個我常用的demo

#新增配置選擇

[uwsgi]

#配置和nginx連線的socket連線

socket=0.0.0.0:12345

#配置專案路徑,專案的所在目錄

chdir=

#配置啟動的程序數

processes=4

#配置每個程序的執行緒數

#threads=4

#配置啟動管理主程序

master=true

#配置存放主程序的程序號檔案

#配置dump日誌記錄

具體操作步驟:

在專案的根目錄建乙個檔案,命名為uwsgi.ini,然後將配置資訊貼上上去;

修改scoker欄位,需要使用埠(這個埠不用管falsk服務的埠);

修改processes 字段,指定程序數

uwsgi --ini uwsgi.ini
在uwsgi.ini配置檔案中,有乙個pidfile的引數,這個引數記錄了master程序的pid號碼,當我們需要停掉這個多程序的服務的時候,使用下面的命令

stop後面的引數和pidfile引數值是一樣的。

使用uwsgi啟動的服務,其所有的logger, print都會被記錄到log檔案中,log檔案的配置引數是daemonize引數,如我的配置檔案,想看log的話

至此,如何使用uwsgi部署多程序服務的案例就結束了,當然,這只是乙個簡單的使用。

Python 使用uwsgi部署flask專案

摘要1 摘要2 摘要3 專案配置from flask import flask,jsonify index def index return jsonify hello world if name main 0.0.0.0 port 8000 root k8s master datas tree l...

安裝uwsgi和使用uwsgi

部落格說明 安裝依賴apt get install build essential python dev安裝 uwsgi 使用python3的pip來安裝 pip3 install uwsgi建立配置檔案 建立類似配置檔案,uwsgi.ini uwsgi socket 127.0.0.1 3031 ...

使用uwsgi啟動python專案配置

建立uwsgi.ini配置檔案,配置內容如下 nginx時使用 socket 192.168.88.61 42014 專案路徑 chdir home workspaces home home workspaces project name wsgi file home workspaces proj...