看了TY大佬(@Tinywan)的公众号文章,有个spatie/async 的使用;
https://github.com/spatie/async
https://mp.weixin.qq.com/s/sd3leq0ezl9ssPryUHQ18A
我是在thinkphp5.1里面使用;
但是报错了,如果不使用TP的相关的类是可以正常跑的,在子任务里面用了TP的相关类就找不到类了;
我看文档是子任务要初始化类,但是我应该怎么把TP的类注入到子任务呢?
我看Laravel 中是下面这样操作,TP的应该怎么操作呢?
$pool[] = async(function () use ($result, $syncemployRepository) {
$app = require __DIR__.'/../../../../bootstrap/app.php';
$kernel = $app->make(\Illuminate\Contracts\Console\Kernel::class);
$kernel->bootstrap();
// 任务代码
})->then(function ($output) use($pool) {
$pool->stop();
})->catch(function (Exception $e) {
Log::error('createauth_sync', ['msg' => $e->getMessage()]);
});
$pool = Pool::create()
->concurrency(20)
->autoload(__DIR__ . '/../../../vendor/autoload.php');
foreach ($cursor as $user) {
$pool[] = async(function () use ($user) {
return self::syncUp($user);
})->then(function (string $output) use ($user) {
Log::record($output);
})->catch(function (\Throwable $e) use ($user) {
Log::record($e->getMessage());
exit();
});
}
await($pool);
public static function syncUp($user): string
{
return Db::name('user')->where('id',$user['id'])->value('name');
}
你这是使用方式不正确,都提示的很明显了
Route.php
路由文件不存在,和使用扩展没关系