Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Crontab 开启 onOneServer true 会报错 #15

Open
zxyfaxcn opened this issue Jan 4, 2023 · 1 comment
Open

Crontab 开启 onOneServer true 会报错 #15

zxyfaxcn opened this issue Jan 4, 2023 · 1 comment

Comments

@zxyfaxcn
Copy link

zxyfaxcn commented Jan 4, 2023

环境:swow-skeleton: 3.0
swow: 1.0

#[Crontab(rule: "* * * * * *", name: "Foo", callback: "execute", memo: "这是一个示例的定时任务")]
class FooTask
{
    #[Inject]
    private StdoutLoggerInterface $logger;

    public function execute(): void
    {
        $this->logger->info(date('Y-m-d H:i:s', time()));
    }

    #[Crontab(rule: "* * * * * *", memo: "foo")]
    public function foo(): void
    {
        var_dump('foo');
    }
}

已设置 :

// config/autoload/processes.php
return [
    Hyperf\Crontab\Process\CrontabDispatcherProcess::class,
];
// config/autoload/dependencies.php
return [
    # crontab 协程模式调度器
    Hyperf\Crontab\Strategy\StrategyInterface::class => Hyperf\Crontab\Strategy\CoroutineStrategy::class,
]
// config/autoload/crontab.php
return [
    'enable' => true,
    'crontab' => [
    ],
];
@zxyfaxcn
Copy link
Author

zxyfaxcn commented Jan 4, 2023

crontab 开启 onOneServer true 会报如下错误:

[WARNING] Error: Call to undefined function Hyperf\Crontab\Mutex\swoole_get_local_mac() in /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/crontab/src/Mutex/RedisServerMutex.php:72
Stack trace:
#0 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/crontab/src/Mutex/RedisServerMutex.php(27): Hyperf\Crontab\Mutex\RedisServerMutex->getMacAddress()
#1 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/di/src/Resolver/ObjectResolver.php(84): Hyperf\Crontab\Mutex\RedisServerMutex->__construct(Object(Hyperf\Redis\RedisFactory))
#2 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/di/src/Resolver/ObjectResolver.php(51): Hyperf\Di\Resolver\ObjectResolver->createInstance(Object(Hyperf\Di\Definition\ObjectDefinition), Array)
#3 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/di/src/Resolver/ResolverDispatcher.php(50): Hyperf\Di\Resolver\ObjectResolver->resolve(Object(Hyperf\Di\Definition\ObjectDefinition), Array)
#4 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/dstring(3) "foo"
i/src/Resolver/DepthGuard.php(67): Hyperf\Di\Resolver\ResolverDispatcher->Hyperf\Di\Resolver\{closure}()
#5 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/di/src/Resolver/ResolverDispatcher.php(51): Hyperf\Di\Resolver\DepthGuard->call('Hyperf\\Crontab\\...', Object(Closure))
#6 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/di/src/Container.php(186): Hyperf\Di\Resolver\ResolverDispatcher->resolve(Object(Hyperf\Di\Definition\ObjectDefinition), Array)
#7 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/di/src/Container.php(71): Hyperf\Di\Container->resolveDefinition(Object(Hyperf\Di\Definition\ObjectDefinition), Array)
#8 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/di/src/Container.php(116): Hyperf\Di\Container->make('Hyperf\\Crontab\\...')
#9 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/crontab/src/Strategy/Executor.php(166): Hyperf\Di\Container->get('Hyperf\\Crontab\\...')
#10 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/crontab/src/Strategy/Executor.php(150): Hyperf\Crontab\Strategy\Executor->getServerMutex()
#11 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/utils/src/Coroutine.php(67): Hyperf\Crontab\Strategy\Executor->Hyperf\Crontab\Strategy\{closure}()
#12 [internal function]: Hyperf\Utils\Coroutine::Hyperf\Utils\{closure}()
#13 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/engine-swow/src/Coroutine.php(71): Swow\Coroutine->resume()
#14 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/utils/src/Coroutine.php(71): Hyperf\Engine\Coroutine::create(Object(Closure))
#15 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/crontab/src/Strategy/Executor.php(90): Hyperf\Utils\Coroutine::create(Object(Closure))
#16 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/coordinator/src/Timer.php(38): Hyperf\Crontab\Strategy\Executor->Hyperf\Crontab\Strategy\{closure}(false)
#17 /Users/mbp/Downloads/swow-skeleton-master/vendor/hyperf/utils/src/Coroutine.php(67): Hyperf\Coordinator\Timer->Hyperf\Coordinator\{closure}()
#18 [internal function]: Hyperf\Utils\Coroutine::Hyperf\Utils\{closure}()
#19 {main}

@zxyfaxcn zxyfaxcn changed the title Crontab 注解方式不生效 Crontab 开启 onOneServer true 会报错 Jan 4, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant