0

我们的系统有一些预定的作业,其中一个作业应该以用户身份运行以获得授权。最好的方法是什么?

App\Console\Kernel 时间表有这些,。

....
        $schedule->job(new EveryMinuteJob)->everyMinute();
        $schedule->job(new EveryFiveMinuteJob)->everyFiveMinutes();
....

EveryMinuteJob 正在多个地方处理,这些地方仅授权给管理员角色用户。因此,在 EveryMinuteJob 中,使用 Auth::login() 和 ::logout() 以管理员身份运行作业,如下所示。这是唯一的方法或任何其他最佳做法吗?

class EveryMinuteJob implements ShouldQueue {

    public function handle()
    {
            ..........

            Auth::login(User::where('super_admin',true)->first());

            ..........

            Auth::logout();

            ..........

    }
}

4

1 回答 1

2

你可以这样使用

$schedule->job(new EveryMinuteJob)->everyMinute()->user($user);
于 2020-11-17T04:18:51.083 回答