1--TEST-- 2swoole_server/task: task in manager 3--SKIPIF-- 4<?php require __DIR__ . '/../../include/skipif.inc'; ?> 5--FILE-- 6<?php 7require __DIR__ . '/../../include/bootstrap.php'; 8 9use Swoole\Server; 10$pm = new SwooleTest\ProcessManager; 11$pm->setWaitTimeout(60); 12$pm->parentFunc = function ($pid) use ($pm) { 13 echo "SUCCESS\n"; 14 $pm->kill(); 15}; 16 17$pm->childFunc = function () use ($pm) 18{ 19 ini_set('swoole.display_errors', 'Off'); 20 $serv = new Server('127.0.0.1', $pm->getFreePort()); 21 $serv->set(array( 22 "worker_num" => 1, 23 'task_worker_num' => 2, 24 'log_file' => '/dev/null', 25 )); 26 $serv->on("managerStart", function (Server $serv) use ($pm) 27 { 28 $serv->task(['type' => 'array', 'value' => 'manager']); 29 }); 30 $serv->on('receive', function (Server $serv, $fd, $rid, $data) 31 { 32 33 }); 34 35 $serv->on('task', function (Server $serv, $task_id, $worker_id, $data) use($pm) 36 { 37 Assert::false($serv->finish("OK")); 38 $pm->wakeup(); 39 }); 40 41 $serv->on('finish', function (Server $serv, $fd, $rid, $data) 42 { 43 44 }); 45 $serv->start(); 46}; 47 48$pm->childFirst(); 49$pm->run(); 50?> 51--EXPECT-- 52SUCCESS 53