如题
composer.json(仅有require)
"php": ">=8.1",
"workerman/webman-framework": "^2.1",
"monolog/monolog": "^2.0",
"workerman/crontab": "^1.0",
"psr/container": "1.1.1",
"php-di/php-di": "6.3",
"doctrine/annotations": "1.14",
"webman/think-orm": "^2.1"
config/dependence.php
return [
\app\service\timingWheel\HierarchicalTimingWheel::class => new \app\service\timingWheel\HierarchicalTimingWheel(1, [60, 24, 30, 12])
];
config/container.php
$builder = new \DI\ContainerBuilder();
$builder->addDefinitions(config('dependence', []));
$builder->useAutowiring(true);
$builder->useAnnotations(true);
return $builder->build();
config/process.php
'timingWheel' => [
'handler' => app\process\TimingWheelTick::class,
]
TimingWheelTick
class TimingWheelTick
{
static function onWorkerStart(Worker $worker)
{
var_dump(spl_object_hash(Container::get(HierarchicalTimingWheel::class)), __CLASS__);
return;
}
}
控制器中的逻辑跟自定义进程一样
控制台输入
string(32) "000000000000002a0000000000000000"
string(27) "app\process\TimingWheelTick"
string(32) "000000000000002b0000000000000000"
string(30) "app\controller\WheelController"
如上 2a是自定义进程输出的 2b是控制器输出的
两者内存不共享?所以实例是两份?
进程之间隔离
明白了