我在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ù)邏輯
}
是的
那我要處理大量的業(yè)務(wù)邏輯,要查詢數(shù)據(jù)庫等,并且推送給相關(guān)客戶端。只在那一個進程里面寫,這樣會不會導(dǎo)致workerman堵塞,甚至異常。
那我要處理大量的業(yè)務(wù)邏輯,要查詢數(shù)據(jù)庫等,并且推送給相關(guān)客戶端。只在那一個進程里面寫,這樣會不會導(dǎo)致workerman堵塞,甚至異常。
1、若業(yè)務(wù)阻塞就會導(dǎo)致進程阻塞,比如查詢數(shù)據(jù)庫這種外部IO,如果執(zhí)行緩慢就會導(dǎo)致進程掛起,題主描述很符合繁重業(yè)務(wù)場景,所以應(yīng)該再另起一組任務(wù)集群異步處理業(yè)務(wù)。
2、應(yīng)該用多進程模型更合理。