【问题标题】:Laravel: How to run a cron job as specific user?Laravel:如何以特定用户身份运行 cron 作业?
【发布时间】:2020-11-17 00:54:33
【问题描述】:

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

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();

            ..........

    }
}

【问题讨论】:

    标签: laravel cron laravel-jobs


    【解决方案1】:

    你可以这样使用

    $schedule->job(new EveryMinuteJob)->everyMinute()->user($user);
    

    【讨论】:

      猜你喜欢
      • 2011-12-31
      • 2020-01-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多