如何将用户与laravel作业批处理连接

问题描述 投票:0回答:1

我想在我的 laravel 应用程序中拥有用户的下载中心 因此,我需要为每个作业批次添加用户信息,

我心中最简单的想法是在 job_batches 表上添加 user_id 列

但是,当作业调度时,laravel 本身似乎会在幕后更新 job_batches 表

如果使用上述方法,我需要通过添加 user_id 来“中断”laravel 插入过程,但我不知道该怎么做

我怎样才能实现这个目标?或者也许有更合适的方法来做到这一点而不是中断 Laravel 的默认进程

php laravel queue jobs
1个回答
0
投票

当您在构造函数中发送

$user
时,您可以从作业的有效负载中获取用户信息

class YourDownloadJob implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
 
    /**
     * Create a new job instance.
     */
    public function __construct(
        public User $user 
    ) {}
 
    /**
     * Execute the job.
     */
    public function handle(): void
    {
        // Process download here with $user info
    }
}

当你想派遣这份工作时

$user = User::find(1);
YourDownloadJob::dispatch($user)
© www.soinside.com 2019 - 2024. All rights reserved.