最新版Workerman5.1,安裝了revolt/event-loop,運(yùn)行環(huán)境為windows10、PHP8.3.8,用下面代碼(文檔示例代碼): 。。。 $worker = new Worker('http://0.0.0.0:8001'); $worker->eventLoop = Fiber::class; // 使用自帶的Fiber協(xié)程 $worker->onMessage = funct...
之前在windows打包并運(yùn)行正常,更新console插件后打包就不能運(yùn)行了: php webman.phar start 提示: Please run 'php windows.php' on windows system...
webman和swow都是最新版,環(huán)境linux,使用下面代碼查詢數(shù)據(jù)庫并返回結(jié)果后,退出webman就會報警告: public function index(): Response { $value = \think\facade\Db::query('SELECT NOW() as now, sleep(5)'); //模擬慢查詢 return json($value);...
今天測試了一下協(xié)程效果,把依賴都更新為最新版(workerman/webman-framework ^2.1、webman/database:~2.1、webman/think-orm:~2.1),然后修改process.php的'eventLoop' => Workerman\Events\Fiber::class,環(huán)境是windows,測試代碼: public function index(): R...
問題描述 升級了Webman2.1和webman/log1.2.1版本,運(yùn)行并訪問后報錯: ReflectionException: Class "support\Db" does not exist in D:\Documents\Desktop\Pleafles\_Yes\PHP\WorkerMan\_Projects\Webman\vendor\webman\log\src\Middleware.php:256...
這兩個配置項分別是config/server.php的'event_loop' 和 config/app.php的'request_class',但在config/process.php里都有了新的定義,所以請問是否已經(jīng)無效了呢?...
我的項目是基于webman的,今天升級時報錯: In Install.php line 21: [Error] Call to undefined function Webman\Console\base_path() Exception trace: at D:\Documents\Desktop\Pleafles\_Yes\PHP\WorkerMan\_Projects\Webman\vendor...
我使用Ngix作為代理,Webman提供服務(wù),每分鐘有1-2個請求,我查看webman/runtime/logs時,發(fā)現(xiàn)每天都有記錄日志,也不是很多,幾分鐘記錄1個日志,內(nèi)容差不多都是這種: [2024-07-11 13:17:17] default.INFO: 120.35.206.38 POST 127.0.0.1:80/api/v1/client/usage [12.1672ms] [webman/log] [...
請問webman中我想在master進(jìn)程中運(yùn)行自定義代碼,比如訪問一個webapi,根據(jù)返回結(jié)果來定義一些環(huán)境、參數(shù)或者退出服務(wù),在哪里加比較優(yōu)雅呢,謝謝~...
問題描述 如題。。。 程序代碼或配置 use think\Model; 。。。 class ArticleModel extends Model { protected $name = 'article666'; 。。。 } 重現(xiàn)問題的步驟 無論$name改成什么,它默認(rèn)連接的表都是Article,將$name改為$table也沒用。。 請問這是bug,還是插件本身有限制?還是我哪里忽略了什么關(guān)鍵步...
折騰了一天,把AsyncTcpConnection連接http代理的方式解決了,其實(shí)很簡單(我是用windows的fiddler開啟的代理,用來抓包),http和https的代理端口都是127.0.0.1的8888端口: $new_connection = new AsyncTcpConnection('tcp://127.0.0.1:8888'); 但使用https時無論如何都無法成功,已經(jīng)測試了以下方案: $n...
問題描述 這里的阻塞任務(wù)主要指io,看了官方文檔,walkor老大的意思是多設(shè)置點(diǎn)進(jìn)程,但是感覺和協(xié)程比起來還是差點(diǎn)意思,又在問答里搜了很多,也有人說放在隊列用業(yè)務(wù)進(jìn)程來執(zhí)行,但這樣會產(chǎn)生個問題,就是如何給客戶端通知呢? 為此搜索到了哪些方案及不適用的原因 鏈接進(jìn)程肯定是將任務(wù)放在隊列(我用redis~)然后直接返回客戶端的,然后處理隊列中任務(wù)的進(jìn)程如何給那個客戶端通知呢?我想了很久,想到的結(jié)果: 1、客戶端輪詢,效...
問題描述 最近在研究openai的接口,它有一個steam功能,就是在curl時設(shè)置 CURLOPT_WRITEFUNCTION 屬性,可以不停的回調(diào)這個函數(shù)并輸出流到瀏覽器,官方示例差不多是這樣子: $open_ai->completion($opts, function ($curl_info, $data) { echo $data . "<br>"; //不停輸出...
可以捕獲的情況: Route::group('/adminapi', function() { Route::options('/v1/setting/user', [app\controller\adminapi\v1\setting\UserController::class, 'index']); //或者:Route::any('/v1/setting/user', [app\controller\...
今天更新了下webman,啟動后提示 stream_socket_server(): unable to connect to tcp://0.0.0.0:8099 (以一種訪問權(quán)限不允許的方式做了一個訪問套接字的嘗試。 ) in file F:\_Projects\ManagementPlatform\Server\webman\vendor\workerman\workerman\Worker.php on li...
操作系統(tǒng):win10 PHP版本:7.4 Webman:最新版1.4.2 問題詳細(xì)信息: 我定義了簡單的路由: Route::any('/test/request', function($request) { return response(); }); 訪問時(沒有任何參數(shù)): 用Get、Post、Put均沒有問題,用Delete方式訪問時,第一次正常返回200,第二次返回400,第三次返回200,第四次又返回40...
我看了 http://m.wtbis.cn/q/7564 并根據(jù)walkor大佬的建議,在 support/helper.php 中定義了: function env($key, $default = null) { static $env_config = []; if (!$env_config) { $env_config = include config_pat...
TP框架對ORM默認(rèn)是短鏈接,一次業(yè)務(wù)連接使用再斷開,而且默認(rèn)使用Model時會查一次表結(jié)構(gòu),Webman集成TP-orm,所以Webman為了提高效率的話會復(fù)用數(shù)據(jù)庫和Redis鏈接,而且每個進(jìn)程都會維護(hù)一個連接。。。吧? 如果是這樣,那么高并發(fā)情況下還得做一些處理,根據(jù)業(yè)務(wù)情況比如數(shù)據(jù)庫加鎖什么的對嗎?(Redis因?yàn)閱尉€程就不必了)...