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

GatewayWorker 多個$worker->count問題

嘻嘻哈哈

我在start_businessworker.php設(shè)置為?$worker->count=2。
?
然后在 Event.php onWorkerStart中編寫 第一個進程的業(yè)務(wù)邏輯代碼,另一個進程沒有編寫任何代碼,是不是另一個進程這樣就沒什么作用了。

// bussinessWorker 進程
$worker = new BusinessWorker();
// worker名稱
$worker->name = 'YourAppBusinessWorker';
// bussinessWorker進程數(shù)量
$worker->count = 2;
// 服務(wù)注冊地址
$worker->registerAddress = '127.0.0.1:1510';

// 如果不是在根目錄啟動,則運行runAll方法
if(!defined('GLOBAL_START')) {
    Worker::runAll();
}
class Events
{

    public static function onWorkerStart($businessWorker)
    {
        if ($businessWorker->id == 0) {
            //編寫業(yè)務(wù)邏輯
        }
3706 4 0
4個回答

abcde123456

是的

  • 嘻嘻哈哈 2019-08-22

    那我要處理大量的業(yè)務(wù)邏輯,要查詢數(shù)據(jù)庫等,并且推送給相關(guān)客戶端。只在那一個進程里面寫,這樣會不會導(dǎo)致workerman堵塞,甚至異常。

嘻嘻哈哈

那我要處理大量的業(yè)務(wù)邏輯,要查詢數(shù)據(jù)庫等,并且推送給相關(guān)客戶端。只在那一個進程里面寫,這樣會不會導(dǎo)致workerman堵塞,甚至異常。

  • abcde123456 2019-08-22

    不會堵塞, bussinessWorker進程執(zhí)行一次然后結(jié)果交給gateway去推送

th

超出一定量的業(yè)務(wù)邏輯一個進程肯定撐不住,會堵塞,數(shù)據(jù)庫查詢不是異步更會堵塞。但為什么不多進程???

  • 嘻嘻哈哈 2019-08-22

    你的意思是,把業(yè)務(wù)邏輯拆分出來,部分業(yè)務(wù)邏輯對應(yīng)一個進程。是這樣嗎?

  • th 2019-08-22

    這樣是可以的,簡單的做法是邏輯不拆分,但同時運行多個

  • 嘻嘻哈哈 2019-08-22

    @th如果邏輯不拆分,同時運行4個進程,那這樣豈不是更浪費服務(wù)器資源。如果是這種模式的話,相同邏輯就要執(zhí)行4次!我用定時器從數(shù)據(jù)庫取出數(shù)據(jù),然后推送給相關(guān)客戶端,這樣就會推送4次相同結(jié)果的數(shù)據(jù)。我理解的是這樣的,不知道對不對。

  • th 2019-08-22

    有人要吃蛋炒飯,要每個廚師都給他做就是同時做了4份,但他只要一份就行了

phpcreeper

1、若業(yè)務(wù)阻塞就會導(dǎo)致進程阻塞,比如查詢數(shù)據(jù)庫這種外部IO,如果執(zhí)行緩慢就會導(dǎo)致進程掛起,題主描述很符合繁重業(yè)務(wù)場景,所以應(yīng)該再另起一組任務(wù)集群異步處理業(yè)務(wù)。
2、應(yīng)該用多進程模型更合理。

年代過于久遠,無法發(fā)表回答
??