最新版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ù)庫(kù)并返回結(jié)果后,退出webman就會(huì)報(bào)警告: public function index(): Response { $value = \think\facade\Db::query('SELECT NOW() as now, sleep(5)'); //模擬慢查詢 return json($value);...
今天測(cè)試了一下協(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,測(cè)試代碼: public function index(): R...
問(wèn)題描述 升級(jí)了Webman2.1和webman/log1.2.1版本,運(yùn)行并訪問(wèn)后報(bào)錯(cuò): ReflectionException: Class "support\Db" does not exist in D:\Documents\Desktop\Pleafles\_Yes\PHP\WorkerMan\_Projects\Webman\vendor\webman\log\src\Middleware.php:256...
這兩個(gè)配置項(xiàng)分別是config/server.php的'event_loop' 和 config/app.php的'request_class',但在config/process.php里都有了新的定義,所以請(qǐng)問(wèn)是否已經(jīng)無(wú)效了呢?...
我的項(xiàng)目是基于webman的,今天升級(jí)時(shí)報(bào)錯(cuò): 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個(gè)請(qǐng)求,我查看webman/runtime/logs時(shí),發(fā)現(xiàn)每天都有記錄日志,也不是很多,幾分鐘記錄1個(gè)日志,內(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] [...
請(qǐng)問(wèn)webman中我想在master進(jìn)程中運(yùn)行自定義代碼,比如訪問(wèn)一個(gè)webapi,根據(jù)返回結(jié)果來(lái)定義一些環(huán)境、參數(shù)或者退出服務(wù),在哪里加比較優(yōu)雅呢,謝謝~...
問(wèn)題描述 如題。。。 程序代碼或配置 use think\Model; 。。。 class ArticleModel extends Model { protected $name = 'article666'; 。。。 } 重現(xiàn)問(wèn)題的步驟 無(wú)論$name改成什么,它默認(rèn)連接的表都是Article,將$name改為$table也沒用。。 請(qǐng)問(wèn)這是bug,還是插件本身有限制?還是我哪里忽略了什么關(guān)鍵步...
折騰了一天,把AsyncTcpConnection連接http代理的方式解決了,其實(shí)很簡(jiǎn)單(我是用windows的fiddler開啟的代理,用來(lái)抓包),http和https的代理端口都是127.0.0.1的8888端口: $new_connection = new AsyncTcpConnection('tcp://127.0.0.1:8888'); 但使用https時(shí)無(wú)論如何都無(wú)法成功,已經(jīng)測(cè)試了以下方案: $n...
問(wèn)題描述 這里的阻塞任務(wù)主要指io,看了官方文檔,walkor老大的意思是多設(shè)置點(diǎn)進(jìn)程,但是感覺和協(xié)程比起來(lái)還是差點(diǎn)意思,又在問(wèn)答里搜了很多,也有人說(shuō)放在隊(duì)列用業(yè)務(wù)進(jìn)程來(lái)執(zhí)行,但這樣會(huì)產(chǎn)生個(gè)問(wèn)題,就是如何給客戶端通知呢? 為此搜索到了哪些方案及不適用的原因 鏈接進(jìn)程肯定是將任務(wù)放在隊(duì)列(我用redis~)然后直接返回客戶端的,然后處理隊(duì)列中任務(wù)的進(jìn)程如何給那個(gè)客戶端通知呢?我想了很久,想到的結(jié)果: 1、客戶端輪詢,效...
問(wèn)題描述 最近在研究openai的接口,它有一個(gè)steam功能,就是在curl時(shí)設(shè)置 CURLOPT_WRITEFUNCTION 屬性,可以不停的回調(diào)這個(gè)函數(shù)并輸出流到瀏覽器,官方示例差不多是這樣子: $open_ai->completion($opts, function ($curl_info, $data) { echo $data . "<br>"; //不停輸出...
最近項(xiàng)目做上傳的時(shí)候遇到些問(wèn)題: 1、上傳后的文件能拿到md5值么?或者如何拿到文件內(nèi)容自己來(lái)生成md5.。 2、如何獲取客戶端訪問(wèn)的url和基地址呢?比如: URL:https://xxx.com/AAA/BBB 基地址:https://xxx.com 3、建議在控制臺(tái)的信息中加入時(shí)間,這樣方便知道每次熱更新在什么時(shí)候: ----------------------- WORKERMAN -------------...
可以捕獲的情況: Route::group('/adminapi', function() { Route::options('/v1/setting/user', [app\controller\adminapi\v1\setting\UserController::class, 'index']); //或者:Route::any('/v1/setting/user', [app\controller\...
定義了幾個(gè)路由,想復(fù)用一個(gè)中間件,根據(jù)參數(shù)載入不同設(shè)置,不知有沒有辦法給中間件傳遞一個(gè)參數(shù)呢?謝謝~...
今天更新了下webman,啟動(dòng)后提示 stream_socket_server(): unable to connect to tcp://0.0.0.0:8099 (以一種訪問(wèn)權(quán)限不允許的方式做了一個(gè)訪問(wè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 問(wèn)題詳細(xì)信息: 我定義了簡(jiǎn)單的路由: Route::any('/test/request', function($request) { return response(); }); 訪問(wèn)時(shí)(沒有任何參數(shù)): 用Get、Post、Put均沒有問(wèn)題,用Delete方式訪問(wèn)時(shí),第一次正常返回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框架對(duì)ORM默認(rèn)是短鏈接,一次業(yè)務(wù)連接使用再斷開,而且默認(rèn)使用Model時(shí)會(huì)查一次表結(jié)構(gòu),Webman集成TP-orm,所以Webman為了提高效率的話會(huì)復(fù)用數(shù)據(jù)庫(kù)和Redis鏈接,而且每個(gè)進(jìn)程都會(huì)維護(hù)一個(gè)連接。。。吧? 如果是這樣,那么高并發(fā)情況下還得做一些處理,根據(jù)業(yè)務(wù)情況比如數(shù)據(jù)庫(kù)加鎖什么的對(duì)嗎?(Redis因?yàn)閱尉€程就不必了)...