gpt4 book ai didi

php - 如何在 laravel 5 队列前后触发代码?

转载 作者:行者123 更新时间:2023-12-02 04:44:32 26 4
gpt4 key购买 nike

我正在尝试开发一个 Multi-Tenancy 多数据库应用程序,这基本上意味着每个租户都有自己的数据库、自己的用户、资源等。

自然地,当收到请求时,Laravel 需要知道要使用哪个数据库连接,所以我编写了一个中间件,它基本上解析请求中的 JWT 并查找租户 ID 或用户名,然后简单地连接到租户的数据库。

这对请求很有效,但现在我被队列困住了。我正在尝试为租户运行队列,例如发送电子邮件,但在触发 handle 方法之前,laravel 会尝试从默认 Db 中获取用户,当然会失败或获取错误的用户。

有没有办法在队列句柄方法触发之前调用代码?是否有我不知道的 laravel 队列的前后方法?

最佳答案

我不相信有事前或事后之分。

为什么不将该信息作为包的一部分传递给 handle 方法,以便在处理作业时它具有所需的数据。

http://laravel.com/docs/5.1/queues#job-class-structure

__construct 方法中设置租户 ID 或您需要在 handle 方法中访问的任何其他内容,此数据在发送到队列时将被序列化。然后,当队列处理作业时,您将可以访问租户 ID,就像您访问该示例中的用户模型一样。

关于php - 如何在 laravel 5 队列前后触发代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34326995/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com