Files
kiri-core/System/Async.php
T
2021-08-13 15:19:07 +08:00

47 lines
797 B
PHP

<?php
namespace Kiri;
use Exception;
use HttpServer\IInterface\Task;
use ReflectionException;
use Kiri\Abstracts\Component;
use Server\ServerManager;
use Server\SInterface\TaskExecute;
/**
* Class Async
* @package Kiri
*/
class Async extends Component
{
private static array $_absences = [];
/**
* @param string $name
* @param TaskExecute|string $handler
*/
public function addAsync(string $name, TaskExecute|string $handler)
{
static::$_absences[$name] = $handler::class;
}
/**
* @param string $name
* @param array $params
* @throws Exception
*/
public function dispatch(string $name, array $params = [])
{
$context = ServerManager::getContext();
$context->task(static::$_absences[$name], $params);
}
}