flask多程序,多執行緒部署介面程式

2021-10-07 05:13:19 字數 1023 閱讀 8661

flask是一種方便快捷輕量級部署介面程式的工具,輕量級伺服器架構,可以方便部署乙個restful介面程式,供別人呼叫。

1 首先匯入相應的包:

from flask import flask, request
2 給提供介面服務的函式加上修飾:

def func():

pass

if __name__ = "__main__":

除此之外,還可以在程式中自己建立多程序,比如:

def func():

records = request.json['record']

content_list = [record['content'] for record in records]

id_list = [record['id'] for record in records]

from multiprocessing import pool

p = pool(8)

result = p.map(cse_obj.findkeyword, content_list)

p.close()

p.join()

此處在介面的實現函式中又會用程序池建立8個子程序,此處無論flask是程序式還是線程式,都會另外建立8個子程序,處理完之後子程序會**,不過值得注意的是,用pool建立程序池,以及程序之間的切換等等也會消耗時間,自測在處理一批批的文字資料時,如果每批文字數量比較少,比如只有幾百個,直接迴圈處理某些情況下比建程序池多程序處理要快,所以要追求效率,程序的建立以及資源切換都要考慮到

客戶端傳送資料的格式需要與接收端的格式相對應,雙方要約定好資料的格式,所以需要對提供的介面的呼叫字段格式及返回字段格式,提供相配套的介面說明文件,給需要呼叫服務的人員

另外,也可以配合gunicorn使用,在用gunicorn啟動時,設定執行緒數,程序數,一般分布式穩定部署,通常是使用nginx+gunnicorn+flask的方式。可參考 gunicorn介紹

多執行緒 多程序?

這幾天在思考如何改進原型在多個客戶端的情況下的效能,特地溫習了一下多程序和多執行緒的一些知識。在linux下程序的程序和執行緒在核心看來區別很小,都是乙個可排程單元,都擁有記憶體管理結構等等。但是關鍵的差別是程序的資源都是私有的,而執行緒則是和別人共享的,所以執行緒的上下文切換可能比程序的開銷要小很...

多程序,多執行緒

多工程式設計 通過應用程式利用多個計算機核心達到多工同時執行的 目的,從此來提公升程式執行效率 多程序,多執行緒 程序 程式在計算機中一次執行的過程 程式 靜態的描述,不占有計算機資源 程序 是乙個動態的過程,占有cpu,記憶體等計算機資源 有一定的生命週期 同乙個程式,每次執行都是不同的程序,因為...

多執行緒 多程序

是什麼?能幹什麼?單執行緒情況下,執行效率低。系統的資源沒有得到充分利用。計算密集型 運算量比較大 io密集型 cpu空閒,輸入輸出較多 怎麼幹?爬蟲 io密集型 多執行緒 橫向 所有的程式的執行都在乙個執行緒中,程式啟動時,啟動多執行緒,每個執行緒跑同樣的 縱向 將程式進行拆分,每個執行緒跑特定的...