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

laravel集成gatewayWorker啟動時報一個php文件不能同時啟動多個worker,要怎么改

chenStudy

截圖,截圖

6875 12 0
12個回答

nitron
  • chenStudy 2022-09-27

    這個文檔里面不太具體,我這種方式的要怎樣拆分成三個呢

xiuwang

laravel自帶命令行,感覺和文檔里windows啟動多個worker沖突,要么拆成三個命令分別執(zhí)行,要么用linux系統(tǒng)吧

  • chenStudy 2022-09-27

    那分成三個什么樣子的呢

  • xiuwang 2022-09-27

    分成三個命令
    php artisan gateway-worker:register start
    php artisan gateway-worker:gateway start
    php artisan gateway-worker:worker start

不敗少龍

在Windows下都會報那個鏈接 其實不影響使用

chenStudy

截圖

  • 暫無評論
chenStudy

截圖,這樣嘛

  • 暫無評論
不敗少龍
<?php

namespace App\Console\Commands;

use App\GatewayWorker\Events;
use Illuminate\Console\Command;
use GatewayWorker\BusinessWorker;
use GatewayWorker\Gateway;
use GatewayWorker\Register;
use Workerman\Worker;

class GatewayService extends Command
{
    /**
     *
     * 程序的根目錄下執(zhí)行 php artisan workman start
     *   php artisan workman start --d
     * @var string
     */
    protected $signature = 'workman {action} {--d}';

    /**
     * The console command description.
     *
     * @var string
     */
    protected $description = 'Start a Workerman server.';

    /**
     * Create a new command instance.
     *
     * @return void
     */
    public function __construct()
    {
        parent::__construct();
    }

    /**
     * Execute the console command.
     *
     * @return mixed
     */
    public function handle()
    {
        global $argv;
        $action = $this->argument('action');

        $argv[0] = 'artisan workman';
        $argv[1] = $action;
        $argv[2] = $this->option('d') ? '-d' : '';   //必須是一個-,上面定義命令兩個--,后臺啟動用兩個--

        $this->start();
    }

    private function start()
    {
        $this->startGateWay();
        $this->startBusinessWorker();
        $this->startRegister();
        Worker::runAll();
    }

    private function startBusinessWorker()
    {
        $worker = new BusinessWorker();
        $worker->name = 'BusinessWorker';
        $worker->count = 1;
        $worker->registerAddress = '127.0.0.1:1236';
        $worker->eventHandler = Events::class;
    }

    private function startGateWay()
    {
        $gateway = new Gateway("tcp://0.0.0.0:2347");
        $gateway->name = 'Gateway';
        $gateway->count = 4;
        $gateway->lanIp = '127.0.0.1';
        $gateway->startPort = 40001;
        $gateway->pingInterval = 30;
        $gateway->pingNotResponseLimit = 0;
        $gateway->pingData = '{"type":"ping"}';
        $gateway->registerAddress = '127.0.0.1:1236';

    }

    private function startRegister()
    {
        new Register('text://0.0.0.0:1236');
    }
}
chenStudy

截圖報這個

chenStudy

截圖,這是另外一種直接下載放進(jìn)去的在win系統(tǒng)下面可以

  • chenStudy 2022-09-27

    但是這相當(dāng)于兩個服務(wù),這樣我就調(diào)用不了原來項目里面的接口了

  • 不敗少龍 2022-09-27

    恩! 命令行執(zhí)行是有這個問題

  • 不敗少龍 2022-09-27

    兩個其實不影響的,都可以使用

  • chenStudy 2022-09-27

    那如果我用這種點擊運(yùn)行的,想調(diào)接口就只能用http請求去調(diào)用對吧

  • 不敗少龍 2022-09-27

    恩! 是這樣的

  • chenStudy 2022-09-28

    三Q啦

  • chenStudy 2022-09-28

    你知道自定義協(xié)議接收數(shù)據(jù)不是我想要的怎樣消費(fèi)掉嘛,它現(xiàn)在一直加在后面

chenStudy

截圖

  • 不敗少龍 2022-09-28

    自定義協(xié)議的話 要看手冊這章http://www.wtbis.cn/doc/workerman/protocols/how-protocols.html 去處理黏包數(shù)據(jù)等 處理接收的數(shù)據(jù) 也是在onMessage里面去處理啊

  • chenStudy 2022-09-28

    哦哦謝謝啦

chenStudy

還想再問一下,我自己定義的協(xié)議,啟動的時候報找不找這個自定義的協(xié)議是因為沒有引對命名空間嘛
截圖,
截圖

chenStudy

截圖,我改了一下,我這個自定義的放在項目根目錄下的,好像還是啟動不起來

chenStudy

截圖

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