国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

webman 可以在 開啟200個線程嗎

a6965921

截圖
因為要處理 耗時的接口 一個接口請求大概要3秒 是第三方接口 不占用服務(wù)器資源 打算開200個線程 處理 實在不行只能換swoole 協(xié)程

2211 4 1
4個回答

evenvi

這么耗時的任務(wù)怎么不用異步任務(wù)的方式

chaz6chez

協(xié)程保存上下文需要使用內(nèi)存,本質(zhì)上還是用內(nèi)存換效率,消費能力也是生產(chǎn)=消費,如果任務(wù)累積到一定程度,那么內(nèi)存占用還是很高,下游的消費速度還是很重要的;建議使用隊列,消費者數(shù)量>生產(chǎn)者數(shù)量保證消費能力,隊列設(shè)置容量上限,以免生產(chǎn)>消費將資源耗盡。

  • chaz6chez 2023-06-18

    你換協(xié)程也是等待,等待的時間會更長,swoole的協(xié)程沒記錯的話是單線程協(xié)程,也就是如果這個協(xié)程上被分配了100個3秒的請求,99個還是在等而已;webman開的進程數(shù)也是接收的數(shù)據(jù)在等罷了,超出了當前進程設(shè)置的buffer以后才會拒絕,每超出buffer的話,請求是在排隊。

nitron

同上,建議走隊列,假如一個請求要3秒,這3秒算是硬性資源,不會因為你用了協(xié)程它就變成了只要1秒

協(xié)程是好東西,但不是解決一切問題的良藥

  • 暫無評論
badman

遇到跟樓主同樣的問題,比如某個服務(wù)需要請求第三方的結(jié)果并立即返回給前端,假設(shè)這種情況下,同時200用戶請求,這個時候webman應(yīng)該沒解了吧?還是說開個200進程?隊列不能立即返回,這種方案暫不考慮。

  • chaz6chez 2023-06-18

    如果是其他語言,解決的方案也是開線程,線程達到上限了也是阻塞等待;
    這種情況在做大數(shù)據(jù)相關(guān)的項目的時候比較多見,一個計算任務(wù)少則幾百毫秒,多則上分鐘,通常來說有以下幾種解決方案:

    1. 交互異步,客戶端發(fā)起長輪詢查詢異步任務(wù)的結(jié)果;
    2. websocket,異步通知廣播接受的消息;

    如果本身就要阻塞等待結(jié)果,那么最好的方式就是排隊,進程數(shù)開大一點,http buffer設(shè)置高一些,但實際上不能根本解決這個問題。

  • nitron 2023-06-18

    加機器解決,就是ch兄上面說的,消費者大于生產(chǎn)者一個道理,無非是這次的消費者是更多的機器

年代過于久遠,無法發(fā)表回答
??