問題描述 現(xiàn)在有一個業(yè)務是抽獎 開啟活動A 活動A持續(xù)時間是5天 在活動期間內(nèi),每個用戶 有且只有 一次抽獎機會 根據(jù)這些特點,不會有那種瞬時超大流量進來,但總會有 幾個用戶同時抽到同一個產(chǎn)品的情況,目前主要是針對這種情況,避免并發(fā)的問題 為此你搜索到了哪些方案及不適用的原因 我目前想到的方案有 利用 MySQL 行鎖,這個在代碼層非常容易實現(xiàn) 利用redis,但具體是怎樣一個思路,目前還沒有想好 針對這種情...
問題描述 目前已經(jīng)通過監(jiān)控進程內(nèi)存大小來實現(xiàn)內(nèi)存監(jiān)控,內(nèi)存大小設(shè)置為32M 但業(yè)務中發(fā)現(xiàn)有些進程會需要比較大的內(nèi)存,而有些進程則不需要,這就會導致有些進程會頻繁重啟 為此你搜索到了哪些方案及不適用的原因 調(diào)整配置大小,調(diào)整為128M 能否恢復到通過max_request來監(jiān)控內(nèi)存 max_request 和 內(nèi)存 兩種方案,各有什么優(yōu)缺點呢? ...
1. 目前,生產(chǎn)環(huán)境,開啟了內(nèi)存監(jiān)控 參考文檔 webman自帶的monitor進程會監(jiān)控所有進程內(nèi)存使用情況,如果進程使用內(nèi)存即將達到php.ini里memory_limit設(shè)定的值時,會自動安全重啟對應的進程,達到釋放內(nèi)存的作用,期間對業(yè)務沒有影響。 2. 大多數(shù)情況下,webman和其他php-fpm項目都是共存在同一臺服務器上的 如果調(diào)整php.ini配置,勢必會影響同一個服務器上其他php-fpm項目 3....
問題描述 在一個PHP-FPM項目中,需要使用一個定時器,每10秒執(zhí)行一些任務 寫了一個PHP腳本,在終端執(zhí)行,關(guān)閉終端后,就不再執(zhí)行了 workerman的timer似乎只能在workerman環(huán)境中使用 為此你搜索到了哪些方案及不適用的原因 目前我的做法是 使用symfony/process 再配合reactPHP 新建一個process.php,內(nèi)容如下 try { $process = new \Sym...
webman日志中的stdout.log是什么文件? stdout.log是什么文件? stdout.log作用是什么? stdout.log這個文件,可以定期刪除嗎? ...
問題描述 webman日志插件中描述: 不能與webman/arms 插件同時使用 目前面臨的情況: 使用了阿里云ARMS差距,一個請求中,只能記錄一個span,也就是一條SQL,不太滿足我們的需求 webman日志插件記錄的內(nèi)容非常詳細,我們需要日志插件記錄的內(nèi)容 問題: 看了兩個插件的代碼,想知道,webman日志插件和webmanarms插件不能同時使用的具體原因是什么? 有什么辦法可以做到兩個插件同時使...
問題描述 webman文檔中,關(guān)于內(nèi)存泄漏描述如下: webman自帶的monitor進程會監(jiān)控所有進程內(nèi)存使用情況,如果進程使用內(nèi)存即將達到php.ini里memory_limit設(shè)定的值時,會自動安全重啟對應的進程,達到釋放內(nèi)存的作用,期間對業(yè)務沒有影響。 但config/server.php中的配置: 'max_request' => 1000000, 'max_pack...
php = 7.3.33 workerman/webman-framework = v1.4.6 workerman/workerman = v4.1.0 報錯信息如下 [2022-09-19 14:50:32] default.ERROR: xxx POST xxx/xxx/xxx/xxx DI\Definition\Exception\InvalidDefinition: Entry "Webman\Http\R...
舉例: 需要對接3家不同的發(fā)貨接口(A class | B class | C class) 每家不同的發(fā)貨接口內(nèi)部,邏輯都不一樣 但對外部來說,都統(tǒng)一為一個單獨的接口deliver 這樣的邏輯,有什么思路嗎? 比如什么設(shè)計模式比較適合這樣的業(yè)務邏輯?...
1. 之前已經(jīng)上線一個webman做的API服務(webman版本是v1.3.21) 目前一切正常,穩(wěn)定,高效,非常感謝webman 2. 最近打算做一個消息中心和任務中心,也打算用webman來做 但最近看到論壇中有人提到 webman v1.4 想知道,webmanv1.4 和 之前的版本會有什么較大變化嗎?...
需要階梯性通知商戶 舉例: 第一次馬上通知商戶 如果商戶沒有正確響應,則會等待1分鐘,再次通知商戶 如果第二次,商戶,還是沒有正確響應,則會等待3分鐘,再次通知商戶 如果第三次,商戶還是沒有正確響應,則不會繼續(xù)通知商戶了 如果其中某一次商戶正確響應了,則不會繼續(xù)通知了 類似這樣的需求,我目前想到的方案是 1. 利用redis-queue,延時和重試次數(shù),剛好可以完全解決這個需求 2. 如果使用定時器,不知道有沒有更好...
PHP version:7.4.26 Workerman version:4.0.33 打印$files $this->parseFile($file); 這個方法報錯了 報錯信息 { "code": 0, "message": "server error.", "traces": "ErrorException: Undefined index: tmp_name in /Users/project...
PHP 版本 = 7.3.33 執(zhí)行命令 composer require webman/arms Updating dependencies Your requirements could not be resolved to an installable set of packages. Problem 1 - webman/arms[v1.0.2, ..., v1.0.3] require ope...
1. 只有控制器 和 啟動腳本中 載入的文件(比如,process,composer包),才是常駐內(nèi)存的 我們自己寫的業(yè)務代碼,比如,在某個方法里,直接 new 的,這種都不是常駐內(nèi)存的吧 因為遵循PHP垃圾回收機制 2. 如果僅僅只比較業(yè)務代碼,是不是跟fpm中,性能差不多的呢?...
在webman中,開啟自定義進程 在onWorkerStart中,使用 while (true)來達到實時消費的目的 阿里云MNS文檔 while (true) { try { pcntl_signal(SIGINT, function () { Worker::stopAll(); });...
stdout.log,經(jīng)常會有這樣的報錯信息 Fatal error: Uncaught ErrorException: (null)(): supplied resource is not a valid stream resource in Unknown:0 Stack trace: #0 [internal function]: {closure}(2, '(null)(): suppl...', 'Unkn...
1. config/app.php return [ 'debug' => true, 'default_timezone' => 'Asia/Shanghai', ]; 2. process/test.php(每天早上10點 和 11點,這樣是可以準時執(zhí)行的,查看對應的日志,有內(nèi)容輸出) public function onWorkerStart(Worker $worker) { ...
啟動自定義進程,在onWorkerStart中,開啟一個定時任務 new Crontab('50 7 * * *', function(){ throw new ApiException('something error'); }); 1. 如果像這樣拋出了異常,但沒有catch,這個時候會發(fā)生什么情況? 2. 當前這個進程會自動重啟嗎?...