1--TEST-- 2swoole_server/task: kill task worker 01 [SWOOLE_BASE] 3--SKIPIF-- 4<?php 5require __DIR__ . '/../../include/skipif.inc'; 6skip_if_darwin(); 7skip_if_in_valgrind(); 8?> 9--FILE-- 10<?php 11require __DIR__ . '/../../include/bootstrap.php'; 12use Swoole\Server; 13const PROC_NAME = 'swoole_unittest_server_task_worker'; 14$pm = new SwooleTest\ProcessManager; 15 16$pm->parentFunc = function ($pid) use ($pm) { 17 for ($i = 0; $i < 5; $i++) 18 { 19 //杀死进程 20 kill_process_by_name(PROC_NAME); 21 usleep(10000); 22 //判断进程是否存在 23 Assert::assert(get_process_pid_by_name(PROC_NAME) > 0); 24 } 25 $pm->kill(); 26}; 27 28$pm->childFunc = function () use ($pm) 29{ 30 $serv = new Server('127.0.0.1', $pm->getFreePort(), SWOOLE_BASE); 31 $serv->set(["worker_num" => 1, 'log_file' => TEST_LOG_FILE, 'task_worker_num' => 1,]); 32 $serv->on("WorkerStart", function (Server $serv, $worker_id) use ($pm) { 33 if ($worker_id = 1) { 34 swoole_set_process_name(PROC_NAME); 35 $pm->wakeup(); 36 } 37 }); 38 $serv->on("Receive", function (Server $serv, $fd, $reactorId, $data) 39 { 40 }); 41 $serv->on('task', function (Server $serv, $task_id, $worker_id, $data) 42 { 43 return array("code" => 0, 'message' => 'hello world', 'sid' => uniqid()); 44 }); 45 $serv->on('finish', function (Server $serv, $fd, $rid, $data) 46 { 47 }); 48 $serv->start(); 49}; 50 51$pm->childFirst(); 52$pm->run(); 53 54?> 55--EXPECT-- 56