?如果要同時啟動HelloWorld,HelloWorld2,HelloWorld3 服務(wù),是這樣寫嗎?
$worker = new ThriftWorker('tcp://0.0.0.0:8000');
$worker->count = 1;
$worker->class = 'HelloWorld';
$worker = new ThriftWorker('tcp://0.0.0.0:8001');
$worker->count = 1;
$worker->class = 'HelloWorld2';
$worker = new ThriftWorker('tcp://0.0.0.0:8002');
$worker->count = 1;
$worker->class = 'HelloWorld3';
如果要啟動的服務(wù)很多,豈不是要寫很多這樣的代碼,請問有更好的處理方式嗎?真實的工作環(huán)境是怎么處理的?
?
然后還想請教個問題,如果服務(wù)的進程因為某種原因掛了,workman會怎么處理呢?如果再次生成新的服務(wù),它的端口號會變嗎?如果變了,客戶端還是連的原來的端口,豈不是就報錯了,如果那樣應(yīng)該怎么辦呢?
?
麻煩了,謝謝。
你可以仿照一個demo 核心代碼??// 標記是全局啟動
define('GLOBAL_START', 1);
require_once __DIR__ . '/vendor/autoload.php';
// 加載所有Applications/*/start.php,以便啟動所有服務(wù)
foreach(glob(__DIR__.'/Applications/*/start*.php') as $start_file)
{
require_once $start_file;
}
//運行所有服務(wù)
Worker::runAll();
@zhongzhen
<?php
$configs = array(
array(
"uri" => "tcp://0.0.0.0:8000", "class" => "HelloWorld1",
),
array(
"uri" => "tcp://0.0.0.0:8001", "class" => "HelloWorld2",
),
array(
"uri" => "tcp://0.0.0.0:8002", "class" => "HelloWorld3",
)
);
foreach ($configs as $c) {
$worker = new ThriftWorker($c);
$worker->count = 1;
$worker->class = $c;
// input your code @todo
}