modify
This commit is contained in:
@@ -137,6 +137,7 @@ class OnTask extends Callback
|
|||||||
if (empty($serialize = swoole_unserialize($data))) {
|
if (empty($serialize = swoole_unserialize($data))) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
$serialize = array_shift($serialize);
|
||||||
if (!($serialize instanceof ITask)) {
|
if (!($serialize instanceof ITask)) {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
+29
-29
@@ -17,42 +17,42 @@ class Async extends Component
|
|||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
private array $_absences = [];
|
private array $_absences = [];
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param Task $handler
|
* @param Task $handler
|
||||||
*/
|
*/
|
||||||
public function addAsync(string $name, Task $handler)
|
public function addAsync(string $name, Task $handler)
|
||||||
{
|
{
|
||||||
$this->_absences[$name] = $handler;
|
$this->_absences[$name] = $handler;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param string $name
|
* @param string $name
|
||||||
* @param array $params
|
* @param array $params
|
||||||
* @throws Exception
|
* @throws Exception
|
||||||
*/
|
*/
|
||||||
public function dispatch(string $name, array $params = [])
|
public function dispatch(string $name, array $params = [])
|
||||||
{
|
{
|
||||||
$server = Snowflake::app()->getSwoole();
|
$server = Snowflake::app()->getSwoole();
|
||||||
if (!isset($server->setting['task_worker_num'])) {
|
if (!isset($server->setting['task_worker_num'])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isset($this->_absences[$name])) {
|
if (!isset($this->_absences[$name])) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @var Task $class */
|
/** @var Task $class */
|
||||||
$class = $this->_absences[$name];
|
$class = $this->_absences[$name];
|
||||||
$class->setParams($params);
|
$class->setParams($params);
|
||||||
|
|
||||||
$randWorkerId = random_int(0, $server->setting['task_worker_num'] - 1);
|
$randWorkerId = random_int(0, $server->setting['task_worker_num'] - 1);
|
||||||
|
|
||||||
$server->task(swoole_serialize($class), $randWorkerId);
|
$server->task(swoole_serialize([$class, 'onHandler']), $randWorkerId);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user