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

使用workerman加速任意項(xiàng)目

walkor

眾所周知,workerman是基于php cli的,由于php cli模式下無(wú)法使用php自帶的header、sesion、cookie等函數(shù),這導(dǎo)致將傳統(tǒng)的php項(xiàng)目無(wú)法直接在workerman容器下直接運(yùn)行。

我一度以為讓傳統(tǒng)業(yè)務(wù)在workerman中運(yùn)行,就必須更改框架甚至業(yè)務(wù)代碼以適配workerman,直到joanhey發(fā)了一個(gè)issue,打破了我的認(rèn)知。

他們發(fā)布了一個(gè)名叫AdapterMan的項(xiàng)目,它可以做到不更改傳統(tǒng)框架代碼的情況下讓你的傳統(tǒng)php項(xiàng)目放到workerman中正常運(yùn)行,并且他們公司已經(jīng)在生產(chǎn)環(huán)境用了2年。

注意,是零代碼改動(dòng)直接讓laravel、lumen、Slim等框架的項(xiàng)目在workerman上運(yùn)行。

目前他們已經(jīng)在laravel、lumen、Slim、Symfony、CakePHP、Yii2、KumbiaPHP 等做了初步壓力測(cè)試,性能有很大的提升。

以下是壓測(cè)結(jié)果

Laravel 8

Fw Plaintext Json Single query Multiple query Updates Fortunes
Laravel 14,799 14,770 9,263 3,247 1,452 8,354
Laravel Roadrunner 482 478 474 375 359 472
Laravel Swoole 38,824 37,439 21,687 3,958 1,588 16,035
Laravel Laravel s 54,617 49,372 23,677 2,917 1,255 16,696
Laravel Workerman 103,004 99,891 46,001 5,828 1,666 27,158
Laravel with Workerman % gain 596.02% 576.31% 396.61% 79.489% 14.738% 225.09%

截圖

Symfony 6

截圖

Fw Plaintext Json Single query Multiple query Updates Fortunes
Symfony 38,231 37,557 12,578 10,741 3,420 10,741
Symfony Workerman 210,796 197,059 107,050 13,401 4,062 71,092

Lumen 9

Fw Plaintext Json Single query Multiple query Updates Fortunes
Lumen 18,998 18,616 10,791 3,496 1,461 9,223
Lumen Swoole 44,861 43,598 24,255 4,178 1,599 16,854
Lumen Laravel s 93,335 82,745 31,567 3,030 1,282 21,130
Lumen Workerman 185,126 177,667 58,729 5,857 1,662 31,430

Slim with Workerman

Without ORM

Framework JSON 1-query 20-query Fortunes Updates Plaintext
Slim 4 38,305 34,272 12,579 32,634 2,097 35,251
Slim 4 Workerman 129,393 81,889 15,803 73,212 2,456 134,531
Slim 4 Workerman pgsql * 102,926 19,637 92,752 14,875

Lumen v9
截圖

接入代碼類似

<?php
require_once __DIR__ . '/vendor/autoload.php';

use Adapterman\Adapterman;
use Workerman\Worker;

Adapterman::init();

$http_worker                = new Worker('http://0.0.0.0:8080');
$http_worker->count         = 8;
$http_worker->name          = 'AdapterMan';

$http_worker->onWorkerStart = static function () {
    //init();
    require __DIR__.'/start.php';
};

$http_worker->onMessage = static function ($connection, $request) {
    $connection->send(run());
};

Worker::runAll();

項(xiàng)目地址:
https://github.com/joanhey/AdapterMan 強(qiáng)烈建議大家為其點(diǎn)贊(點(diǎn)星星)
相關(guān)鏈接:
https://github.com/walkor/workerman/issues/824

32307 52 38
52個(gè)回答

water2023

先頂為敬

muvtou

學(xué)習(xí)了!

  • 暫無(wú)評(píng)論
liziyu

贊!已經(jīng)響應(yīng)號(hào)召送上星星。^_^

  • 暫無(wú)評(píng)論
chaz6chez

????

  • 暫無(wú)評(píng)論
= - =

老大,不行哇,我拿著 laravel 項(xiàng)目測(cè)試運(yùn)行,靜態(tài)資源沒成功加載到,laravel 的 緩存使用了 phpredis,提示找不到 Redis。

  • = - = 2022-12-15

    而且根據(jù) workerman 文檔寫的響應(yīng)靜態(tài)文件,因?yàn)榘姹疽蕾囘^(guò)低,導(dǎo)致無(wú)法使用 (new Response)->withFile(); 的方法進(jìn)行處理。

  • Tinywan 2022-12-15

    可以做到不更改傳統(tǒng)框架代碼的情況下讓你的傳統(tǒng)php項(xiàng)目放到workerman中正常運(yùn)行,并且他們公司已經(jīng)在生產(chǎn)環(huán)境用了2年。

  • = - = 2022-12-18

    然鵝官方和我說(shuō)了 redis 作為 session 驅(qū)動(dòng)時(shí)存在問題,正在排查ing?

wolfcode

占位

  • 暫無(wú)評(píng)論
不敗少龍

威武霸氣

  • 暫無(wú)評(píng)論
Tinywan

厲害!已 start

  • banro512 2022-12-17

    對(duì)于 dz wp等系統(tǒng),有否辦法直接使用,里面大量依賴 $_GET $_POST等,尤其是 dz 多個(gè)入口文件。

WatcherLuo

  • 暫無(wú)評(píng)論
admin

https://github.com/TechEmpower/FrameworkBenchmarks/pull/7626/files#diff-e853be1cf6b848987afe860157bc6ed090ffe163e868fb96e7c515c787963e89

還是沒看懂這么簡(jiǎn)單的一部分 怎么就ok了,目前看上去好像就是 初始化了request

zh7314

原理是吧workerman當(dāng)fpm使用,吧session,cookies等使用封裝函數(shù)代替了,是個(gè)不錯(cuò)的想法,但是不能全部直接移植使用,還需要更改一些東西

  • ichynul 2022-12-15

    看原理也不復(fù)雜,把一些相關(guān)方法替換了。
    然后用ob_get_clean();獲取對(duì)應(yīng)框架的輸出。

  • zh7314 2022-12-20

    他這個(gè)框架還沒做到這個(gè)程度,應(yīng)該只是適配了部分fpm的功能

  • xamarin 2023-01-18

    同意

10bang

厲害

  • 暫無(wú)評(píng)論
wo642436249

可以啊,希望webman的生態(tài)越來(lái)越好

  • 暫無(wú)評(píng)論
真的是你呀

我有點(diǎn)不相信不改代碼,特別是引入其他庫(kù)【摳鼻子】

  • 暫無(wú)評(píng)論
chen

  • 暫無(wú)評(píng)論
banro512

看起來(lái)是對(duì) laravel tp6 這類封裝較好的框架有效,如果拿來(lái)運(yùn)行 dz dedecms 還是不行的

  • 縫合 2022-12-16

    應(yīng)該也可以,他這個(gè)思路是disable_function 掉自帶函數(shù),然后實(shí)現(xiàn)自己的函數(shù)。這么玩的話,框架基本上不存在跑起來(lái)的問題,問題是有些開發(fā)過(guò)程中的靜態(tài)變量可能搞的內(nèi)存泄漏。需要稍為調(diào)整下

powerbowen

遲來(lái)的贊

  • 暫無(wú)評(píng)論
hzz

已star,因?yàn)檫@個(gè)帖子才注冊(cè)的賬號(hào),來(lái)晚了~

  • 暫無(wú)評(píng)論
la32ffff

php -c cli-php.ini server.php start 正常
php -c cli-php.ini server.php start -d 就報(bào)錯(cuò)

[root@localhost laravel9]# php -c cli-php.ini  server.php  start -d
Adapterman v0.4 OK

Workerman[server.php] start in DAEMON mode
-------------------------------------------- WORKERMAN --------------------------------------------
Workerman version:3.5.33          PHP version:8.1.13           Event-Loop:\Workerman\Events\Select
--------------------------------------------- WORKERS ---------------------------------------------
proto   user            worker          listen                 processes    status           
tcp     root            AdapterMan      http://0.0.0.0:7070    8             [OK]            
---------------------------------------------------------------------------------------------------
Input "php server.php stop" to stop. Start success.

PHP Fatal error:  Uncaught TypeError: fclose(): Argument #1 ($stream) must be of type resource, null given in /mnt/hgfs/www/laravel9/vendor/workerman/workerman/Worker.php:1245
Stack trace:
#0 /mnt/hgfs/www/laravel9/vendor/workerman/workerman/Worker.php(1245): fclose()
#1 /mnt/hgfs/www/laravel9/vendor/workerman/workerman/Worker.php(548): Workerman\Worker::resetStd()
#2 /mnt/hgfs/www/laravel9/server.php(24): Workerman\Worker::runAll()
#3 {main}
  thrown in /mnt/hgfs/www/laravel9/vendor/workerman/workerman/Worker.php on line 1245

Fatal error: Uncaught TypeError: fclose(): Argument #1 ($stream) must be of type resource, null given in /mnt/hgfs/www/laravel9/vendor/workerman/workerman/Worker.php:1245
Stack trace:
#0 /mnt/hgfs/www/laravel9/vendor/workerman/workerman/Worker.php(1245): fclose()
#1 /mnt/hgfs/www/laravel9/vendor/workerman/workerman/Worker.php(548): Workerman\Worker::resetStd()
#2 /mnt/hgfs/www/laravel9/server.php(24): Workerman\Worker::runAll()
#3 {main}
  thrown in /mnt/hgfs/www/laravel9/vendor/workerman/workerman/Worker.php on line 1245
PHP Fatal error:  Uncaught TypeError: fclose(): Argument #1 ($stream) must be of type resource, null given in /mnt/hgfs/www/laravel9/vendor/workerman/workerman/Worker.php:1245
  • xamarin 2023-01-18

    今天的版本應(yīng)該不報(bào)個(gè)錯(cuò)了 作者的workman已經(jīng)是4.1

la32ffff

我的修改 不知道影響不影響

public static function resetStd()
    {
        if (!static::$daemonize || static::$_OS !== \OS_TYPE_LINUX) {
            return;
        }
        global $STDOUT, $STDERR;
        $handle = \fopen(static::$stdoutFile, "a");
        if ($handle) {
            unset($handle);
            \set_error_handler(function(){});
            $STDOUT && \fclose($STDOUT); //新增判斷
            $STDERR && \fclose($STDERR); //新增判斷
            \STDOUT &&  \fclose(\STDOUT); //新增判斷
            \STDERR &&   \fclose(\STDERR); //新增判斷
            $STDOUT = \fopen(static::$stdoutFile, "a");
            $STDERR = \fopen(static::$stdoutFile, "a");
            // change output stream
            static::$_outputStream = null;
            static::outputStream($STDOUT);
            \restore_error_handler();
            return;
        }

        throw new Exception('Can not open stdoutFile ' . static::$stdoutFile);
    }
  • la32ffff 2022-12-17

    我看到workman 4.* 已經(jīng)修復(fù)了

a784910468

webman和adaptman相當(dāng)于是兩種解決方案了吧,一種是當(dāng)作fpm,一種是直接在fpm里寫服務(wù)。性能應(yīng)該還是webman好吧

  • 暫無(wú)評(píng)論
ts0523481

這個(gè)怎么用啊,現(xiàn)有的項(xiàng)目直接composer require joanhey/adapterman?

  • 暫無(wú)評(píng)論
artisan
牛逼,關(guān)注
  • 暫無(wú)評(píng)論
設(shè)想

如果可以完美兼容,感覺webman就不香了

  • tanhongbin 2023-05-18

    還是webman香,性能、寫法、和后面的各種組件看,還是webman還用

設(shè)想

@walkor 這個(gè)功能應(yīng)該官方來(lái)搞

  • 暫無(wú)評(píng)論
la32ffff

laravel9 還測(cè)試到兩個(gè)問題 一個(gè)靜態(tài)文件加載失敗
第二個(gè)上傳圖片失敗

Workerman version:3.5.34          PHP version:8.1.3
------------------------ WORKERS -------------------------------
worker               listen                              processes status
AdapterMan           http://0.0.0.0:8080                 8         [ok]
Error: Call to a member function getClientOriginalName() on string in E:\www\laravel9\vendor\laravel\telescope\src\Watchers\RequestWatcher.php:164
Stack trace:
#0 [internal function]: Laravel\Telescope\Watchers\RequestWatcher->Laravel\Telescope\Watchers\{closure}('files', 'name')
#1 E:\www\laravel9\vendor\laravel\telescope\src\Watchers\RequestWatcher.php(167): array_walk_recursive(Array, Object(Closure))
#2 E:\www\laravel9\vendor\laravel\telescope\src\Watchers\RequestWatcher.php(54): Laravel\Telescope\Watchers\RequestWatcher->input(Object(Illuminate\Http\Request))
#3 E:\www\laravel9\vendor\laravel\framework\src\Illuminate\Events\Dispatcher.php(421): Laravel\Telescope\Watchers\RequestWatcher->recordRequest(Object(Illuminate\Foundation\Http\Events\RequestHandled))
#4 E:\www\laravel9\vendor\laravel\framework\src\Illuminate\Events\Dispatcher.php(249): Illuminate\Events\Dispatcher->Illuminate\Events\{closure}('Illuminate\\Foun...', Array)
#5 E:\www\laravel9\vendor\laravel\framework\src\Illuminate\Foundation\Http\Kernel.php(142): Illuminate\Events\Dispatcher->dispatch('Illuminate\\Foun...')
#6 E:\www\laravel9\public\start.php(61): Illuminate\Foundation\Http\Kernel->handle(Object(Illuminate\Http\Request))
#7 E:\www\laravel9\server.php(21): run()
#8 E:\www\laravel9\vendor\workerman\workerman\Connection\TcpConnection.php(656): {closure}(Object(Workerman\Connection\TcpConnection), Array)
#9 E:\www\laravel9\vendor\workerman\workerman\Events\Select.php(292): Workerman\Connection\TcpConnection->baseRead(Resource id #142)
#10 E:\www\laravel9\vendor\workerman\workerman\Worker.php(2410): Workerman\Events\Select->loop()
#11 E:\www\laravel9\vendor\workerman\workerman\Worker.php(1406): Workerman\Worker->run()
#12 E:\www\laravel9\vendor\workerman\workerman\Worker.php(1349): Workerman\Worker::forkWorkersForWindows()
#13 E:\www\laravel9\vendor\workerman\workerman\Worker.php(547): Workerman\Worker::forkWorkers()
#14 E:\www\laravel9\server.php(24): Workerman\Worker::runAll()
#15 {main}
Worker process terminated
  • la32ffff 2022-12-22

    可能是workerman3.5的bug 希望能早點(diǎn)升級(jí)到4.*

  • xini2603 2022-12-26

    對(duì)于laravel 應(yīng)在請(qǐng)求時(shí)初使化一些laravel的單例,不初使化有可能會(huì)出現(xiàn)單例污染情況如:auth
    在run中加入:$kernel->getApplication()->forgetInstance('auth');
    依次類推薦!

hungmou

沒看懂咋用

  • 暫無(wú)評(píng)論
senge520

有沒有大佬分析下這個(gè)實(shí)現(xiàn)原理是啥呢?

  • 暫無(wú)評(píng)論
euii

我在使用redis-queue,用的是workerman 4.*,希望早日升級(jí)到workerman 4.0,讓我試試。

  • 暫無(wú)評(píng)論
xini2603

對(duì)于laravel 應(yīng)在請(qǐng)求時(shí)初使化一些laravel的單例,不初使化有可能會(huì)出現(xiàn)單例污染情況如:auth如果不重置,會(huì)導(dǎo)致登陸后,
返回的是第一個(gè)登陸的用戶信息,
在run中加入:$kernel->getApplication()->forgetInstance('auth');如下,當(dāng)然還有其它組件,用啥加啥

$kernel->getApplication()->forgetInstance('auth');
$response = $kernel->handle(
            $request = Illuminate\Http\Request::capture()
        );

具體有多少單例是通過(guò) 判斷變量返結(jié)果的,得大家使用中發(fā)現(xiàn)或者參考:swoole與laravel的整合了完善!
目前用于生產(chǎn)應(yīng)核有點(diǎn)難,除非用的組件少,

  • 493226876 2023-01-17

    加了
    $kernel->getApplication()->forgetInstance('auth');
    還是會(huì)污染 其他地方打開頁(yè)面出現(xiàn)的是第一個(gè)的session

toooooop

thinkphp6能用了么

xianrenqh

頂頂更健康

  • 暫無(wú)評(píng)論
xini2603

laravel 使用得自己加一條動(dòng)態(tài)路由實(shí)現(xiàn),靜態(tài)路由會(huì)有一個(gè)問題:控制器中的 ,__construct 方法只會(huì)執(zhí)行首次,路由也是按單例模式只初使化一次,要嗎得按webman方法改變一下路由為每次初使化,當(dāng)然不使用__construct魔術(shù)方法就好了

  • ab0029 2023-01-11

    這個(gè)對(duì)低版本laravel很有用只是需要手動(dòng)清理下單例那些,可以參考官方Octane擴(kuò)展去清理,高版本直接用自帶的官方擴(kuò)展,或者有人已經(jīng)出了workerman Octane的驅(qū)動(dòng)了

ncwsky

HttpForPHP 我這個(gè)項(xiàng)目也是一樣的 為什么就沒有人關(guān)注下
使用workerman實(shí)現(xiàn)http服務(wù),把現(xiàn)有其他框架的代碼簡(jiǎn)單改為常駐內(nèi)存http服務(wù),未實(shí)現(xiàn)session支持,最適合用于接口服務(wù),已有在yii項(xiàng)目中運(yùn)行,參見自帶的yii示例。
原理就是對(duì)PHP的$_SERVER $_COOKIE $_FILES $_REQUEST $_POST $_GET全局變量重置數(shù)據(jù)
$_SESSION太麻煩就沒有處理 畢竟只針對(duì)接口應(yīng)用的服務(wù) 所以就沒有必要

主頁(yè):https://github.com/ncwsky/HttpForPHP

  • wo642436249 2023-01-03

    給你一個(gè)star

  • ncwsky 2023-01-03

    3q

  • banro512 2023-01-10

    充分說(shuō)明了:不管再好的項(xiàng)目,沒有詳細(xì)清晰的文檔,也難以吸引關(guān)注。
    至少要寫出這個(gè)項(xiàng)目的使用場(chǎng)景、解決的問題、如何在項(xiàng)目中引用,比如laravel中、lumen中或者其他三方項(xiàng)目中如何接入

  • ak47f16200 2023-01-15

    你這個(gè)有項(xiàng)目在跑嗎?如果接入,是不是也是零修改?

  • ak47f16200 2023-01-16

    哈哈,零修改,基本是跑起來(lái)了。回頭試下壓測(cè)看看效果

  • ncwsky 2023-01-17

    項(xiàng)目的yii示例就是在線運(yùn)行的 通過(guò)nginx匹配符合的請(qǐng)求代理到服務(wù)里處理

  • ncwsky 2023-01-17

    零修改 不現(xiàn)實(shí) 針對(duì)自定義的header http_code還是需要處理的 就像yii那個(gè)示例里的一樣

  • ak47f16200 2023-02-19

    file_get_contents('php://input')這個(gè)卡住了,,像微信支付回調(diào)都是用這個(gè)接收的,你是怎么搞的?不會(huì)都類庫(kù)都自己處理一下吧??

  • ncwsky 2023-02-28

    這是我yii項(xiàng)目里easywechat庫(kù)我的處理方式 僅供參考
    $app = Factory::officialAccount($config);
    $app->request = WeixinRequest::createFromGlobals(); //重置wx的request
    $app->request->setContent(\Yii::$app->request->getRawBody()); //常駐內(nèi)存時(shí)推送內(nèi)容置入

suendy

文件上傳是不是需要單獨(dú)處理啊,其他的都沒有問題,就是上傳文件這個(gè)地方不管用

  • 暫無(wú)評(píng)論
xianrenqh

thinkphp6咋用的啊

  • 暫無(wú)評(píng)論
極勝100

我嘗試了一下適配現(xiàn)有項(xiàng)目,現(xiàn)有項(xiàng)目使用的lumen,發(fā)現(xiàn)http post body 里面的值,在lumen 的$request對(duì)象里獲取不到,是我使用姿勢(shì)不對(duì)嗎?

  • xini2603 2023-01-07

    $request 在有些地方獲取不到,不過(guò)你可以換成 request() 就獲取到了

  • 極勝100 2023-01-09

    試了一下,還是不行的。看起來(lái)有些地方還是有問題,沒辦法直接用

  • ab0029 2023-01-11

    參考Octane擴(kuò)展,入口去初始化request即可

ab0029

看了下,騷操作呀,應(yīng)該是可以適配任意項(xiàng)目,本質(zhì)就直接禁止掉部分系統(tǒng)函數(shù),手動(dòng)實(shí)現(xiàn)去適配

  • 暫無(wú)評(píng)論
ichynul

最大的障礙就是靜態(tài)引用。
所以說(shuō)零代碼改動(dòng)是不可能的。

  • 暫無(wú)評(píng)論

這個(gè)需要php8 老項(xiàng)目版本一般比較低,會(huì)兼容嗎?

  • ak47f16200 2023-02-19

    只有PHP8以上才可以重寫系統(tǒng)函數(shù)

xiaobai

不明所以,隨便看看

  • 暫無(wú)評(píng)論
cshaptx4869

thinkphp6 加速失敗 各種報(bào)錯(cuò)...

  • 暫無(wú)評(píng)論
龍正哲

安裝報(bào)錯(cuò) composer require joanhey/adapterman

Problem 1
    - Root composer.json requires joanhey/adapterman ^0.5.5 -> satisfiable by joanhey/adapterman[0.5.5].
    - joanhey/adapterman 0.5.5 requires workerman/workerman ^3.5 -> found workerman/workerman[v3.5.0, ..., v3.5.34] but it conflicts with your root composer.json require (^4.1).

是我用tp6,已經(jīng)安裝過(guò)workerman了,版本較高

  • 冬至 2023-03-25

    tp5可以用嗎

  • 龍正哲 2023-03-27

    沒用過(guò),現(xiàn)在tp6 + 8.1 還是不能用,啟動(dòng)會(huì)報(bào)錯(cuò),沒繼續(xù)弄這個(gè)了

lvshuang

牛逼的項(xiàng)目

  • 暫無(wú)評(píng)論
euii

Test environment:
Mac 13.3.1
Workerman version:4.1.5
PHP version:8.1.17
Event-Loop:\Workerman\Events\Select
Adapterman: 0.6.1
Laravel : 9.33.0
當(dāng)我運(yùn)行 php server.php start 時(shí)是可正常使用的,但是當(dāng)我運(yùn)行php server.php start -d 在訪問接口的時(shí)候就報(bào)錯(cuò)了,錯(cuò)誤在這個(gè)帖子里。
https://github.com/joanhey/AdapterMan/issues/36

我現(xiàn)在的疑問是 workerman的守護(hù)模式和非守護(hù)模式有什么不一樣的地方?不知道有沒有人遇到這樣的問題

  • 暫無(wú)評(píng)論
xini2603

laravel 文件上傳處理,更改原碼中 http.php 500行,下面的switch部分為:

 switch ($header_key) {
                    case "content-disposition":
                        // Is file data.
                        if (\preg_match('/name="(.*?)"; filename="(.*?)"/', $header_value, $match)) {
                            $error = 0;
                            $tmp_file = '';
                            $file_name = $match[2];
                            $size = \strlen($boundary_value);
                            $tmp_upload_dir = \Workerman\Protocols\Http::uploadTmpDir();
                            if (!$tmp_upload_dir) {
                                $error = UPLOAD_ERR_NO_TMP_DIR;
                            } else if ($boundary_value === '' && $file_name === '') {
                                $error = UPLOAD_ERR_NO_FILE;
                            } else {
                                $tmp_file = \tempnam($tmp_upload_dir, 'workerman.upload.');
                                if ($tmp_file === false || false === \file_put_contents($tmp_file, $boundary_value)) {
                                    $error = UPLOAD_ERR_CANT_WRITE;
                                }
                            }
                            $upload_key = $match[1];
                            // Parse upload files.
                            $_FILES[$upload_key] = [
                                'name' => $file_name,
                                'tmp_name' => $tmp_file,
                                'size' => $size,
                                'error' => $error,
                                'type' => '',
                            ];
                            break;
                        } // Is post field.
                        else {
                            // Parse $_POST.
                            if (\preg_match('/name="(.*?)"$/', $header_value, $match)) {
                                //TODO search a fast solution
                                $post_encode_string .= urlencode($match[1]) . '=' . urlencode($boundary_value) . '&';
                            }
                        }
                        break;
                    case "content-type":
                        // add file_type
                        $_FILES[$upload_key]['type'] = \trim($header_value);
                        break;
                }
  • 暫無(wú)評(píng)論
fengchujun

php7.X 能跑嗎?裝了一下提示PHP版本不兼容,看了一下貌似要 PHP8 以上

  • 縫合 2023-10-23

    不可以。因?yàn)閜hp8 支持 disable_function 的函數(shù)重新定義。在8之前會(huì)報(bào)錯(cuò)。

dignfei

唯一的問題: 代碼創(chuàng)建的 靜態(tài)變量 怎么解決?如何一鍵清理所有靜態(tài)變量?

  • tanhongbin 2023-07-20

    這個(gè)沒得搞,就怕靜態(tài) 數(shù)組 無(wú)限添加 必然內(nèi)存泄露

  • dignfei 2023-07-20

    實(shí)現(xiàn)不了嗎,一鍵刪除所有靜態(tài)變量?

dignfei

需要老大修改一下workerman,來(lái)解決內(nèi)存泄漏的問題
$http_worker->onMessage = static function ($connection, $request) {
$connection->send(run());
};
這里onMessage 需要改一下。增加一個(gè)控制的開關(guān):實(shí)現(xiàn)每次收到消息后都用新進(jìn)程處理,解決靜態(tài)變量、內(nèi)存泄漏的問題:
方法:
onWorkerStart執(zhí)行一些需要提前加載的代碼之后,worker進(jìn)程提前fork出很多子進(jìn)程備用,
然后每次 onMessage 接收到消息都用fork出的進(jìn)程處理,用完就銷毀,同時(shí)fork一個(gè)新的。

其中涉及到信號(hào)的處理,fork出的進(jìn)程如何接收數(shù)據(jù)和主進(jìn)程通訊等

  • 暫無(wú)評(píng)論

看時(shí)間節(jié)點(diǎn),已經(jīng)使用兩年半了,哈哈哈哈

  • 暫無(wú)評(píng)論
zjkal?

明天試試在Thinkphp6或者8上面是什么效果

  • 暫無(wú)評(píng)論
王二狗

加速的話對(duì)服務(wù)器內(nèi)存要求是多少呀,資源消耗會(huì)很大嘛

  • 縫合 2023-10-23

    內(nèi)存占用會(huì)比php-fpm 少很多的。對(duì)比那些php-fpm開很多的服務(wù)來(lái)說(shuō)

年代過(guò)于久遠(yuǎn),無(wú)法發(fā)表回答
??