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