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

webman自定義共享內(nèi)存進程,根據(jù)請求參數(shù)累計連續(xù)2000次后發(fā)送告警信息

xiaopi

問題描述

  • 需求如下:
    接收第三方http請求,根據(jù)請求中某個參數(shù)的累計的次數(shù)發(fā)送告警信息,如請求會發(fā)送status參數(shù),status:false表示失敗,status:true表示成功,統(tǒng)計連續(xù)失敗次數(shù)達到2000次后,發(fā)送告警信息
    日請求次數(shù)達到1000w+
  • 問題:根據(jù)需求我自定義了單進程tcp服務(wù),使用內(nèi)存計數(shù);在http服務(wù)開啟了8個進程,http服務(wù)接收到請求后使用AsyncTcpConnection異步發(fā)送到單進程中做計數(shù)處理
    代碼是否在大并發(fā)中出現(xiàn)問題?比如出現(xiàn)內(nèi)存泄漏、進程重啟的問題,因為一旦進程自動重啟,計數(shù)的值就沒了
    是否可以達到日請求1000w+?
  • 代碼

process.php配置

截圖

統(tǒng)計邏輯
截圖

向自定義tcp服務(wù)發(fā)送
截圖

1117 3 0
3個回答

meows

所以你為什么不用redis 呢? redis-server 也支持unixsocket 通信,不一定要TCP

  • xiaopi 2023-12-16

    感謝解答,不用redis unixsocket的原因是redis unixsocket機制只能本機進程共享,而這個項目后面可能會把http服務(wù)分布在多臺服務(wù)器上部署。如果使用redis tcp通信的話,也需要單獨的搭建一個redis。考慮部署方便,維護、以及成本,所以先用內(nèi)存存儲

胡桃

你可能需要真正的共享內(nèi)存

  • xiaopi 2023-12-17

    workerman有個globalData共享內(nèi)存,我嘗試改成webman版本,沒弄好

  • meows 2023-12-17

    別折騰了,這里早就有人實現(xiàn)分享出來:http://m.wtbis.cn/a/1589

  • xiaopi 2023-12-17

    感謝,webman-shared-cache確實性能高,雖然不是持久化,但是可以解決我的共享內(nèi)存問題,接下來我我看看怎么把apcu打包到php8.1-static中

  • tanhongbin 2023-12-18

    直接actions 或者 本地打包就可了,actions需要gd庫 做一點處理,有需要你@我

  • xiaopi 2023-12-18

    @tanhongbin 啥叫g(shù)d庫不行,我在issues中也發(fā)現(xiàn)有人說gd庫不行,不過我沒看明白,我手動打包以后,gd庫是正常的啊。這是我手動打包的步驟:http://m.wtbis.cn/a/1605

  • tanhongbin 2023-12-18

    你用admin了嘛 你會發(fā)現(xiàn) 驗證碼出不來 報錯 就是gd庫 里面缺少一些配置

  • xiaopi 2023-12-18

    明白了,有些gd配置沒開么,是否可以在-I "memory_limit=512M"里面包含這些gd庫? 不過我看手動編譯可以加上這些,但是你說的actions這個我試了一下,沒有添加這些ini配置的地方啊,如何調(diào)整ini參數(shù)?

  • tanhongbin 2023-12-18

    不行的 ,必須打包靜態(tài)php的時候 處理

  • xiaopi 2023-12-18

    咋處理?

  • tanhongbin 2023-12-18

    我給你找找哈

  • xiaopi 2023-12-18

    老哥,為啥我試了兩次github actions,都報錯了,提示:Key Validation Error: php-8.1-dependencies-bcmath,calendar,ctype,curl,dba,dom,exif,filter,fileinfo,gd,iconv,intl,mbstring,mbregex,mysqli,mysqlnd,openssl,opcache,pcntl,pdo,pdo_mysql,pgsql,phar,posix,readline,redis,session,simplexml,sockets,sodium,sqlite3,tokenizer,xml,xmlreader,xmlwriter,xsl,zip,zlib,mongodb,event,soap,shmop,xlswriter,pdo_sqlite cannot contain commas. 不是說用逗號分隔擴展么,如"apcu,redis,ctype"

  • tanhongbin 2023-12-18

    這個 不影響吧

  • tanhongbin 2023-12-18

    有兩處 需要修改

  • tanhongbin 2023-12-18

    https://github.com/tanhongbin-php/static-php-cli 這是我的,你可以fork一下 然后自己看看

  • tanhongbin 2023-12-18

    里面有兩處改過了 問的這個插件的作者改的

  • xiaopi 2023-12-18

    感謝,不過修改的地方是gd擴展的一些配置么? 如果是配置,那寫在--debug -I "memory_limit=512M"里面 是否也有效果?。?/p>

  • tanhongbin 2023-12-18

    沒有的 擴展里面的配置 ,你寫文件里面沒有用的

  • xiaopi 2023-12-18

    我試了一下手動編譯了一份,好像是可以的啊 -I "memory_limit=512M" -I "apc.shm_size=512M"

xiaopi

改了一下,使用apcu共享內(nèi)存,webman插件是webman-shared-cache,可以在多個進程中共享內(nèi)存,但是不知道會不會z在多個進程并發(fā)處理的時候出現(xiàn)問題,尤其時定時器,在發(fā)送告警后,當(dāng)前進程開啟一個一次性定時器,2分鐘后刪除apcu中的信息,目的就是2分鐘期間內(nèi)不統(tǒng)計新的數(shù)據(jù)

@walkor 麻煩老大給看看。
截圖

  • 暫無評論
年代過于久遠(yuǎn),無法發(fā)表回答
??