我有一个Job
,最初写的是由登录的Users
独占运行。我现在有一个用例,我希望能够从调度程序分派Job
。
我遇到的问题是,原始代码包括对已登录的User
的一些检查,当由调度程序运行时,null
。
理想情况下,我想做的是在运行时检测Job
是否已被调度程序调度,如果是,则绕过这些测试。这可能吗?
或者,我知道EventCallback
类上有一个user
方法,根据文档,它允许你以给定用户的身份执行回调(这是一个Job
)-这也可以提供一个解决方案。我试过传入一个User
对象和一个ID,但两者都没有我预期的行为(如果我用Jobs handle
方法记录Auth::check()
,我会得到false
)。文档建议$user
应该是一个string
,所以很可能我没有正确使用这个方法,但我找不到关于这个 * 应该 * 如何使用的任何细节。
谢谢你的帮助!
1条答案
按热度按时间xytpbqjk1#
Laravel中的作业系统没有任何内置的标志或属性来指定分派源。如果这适用于你的情况,你可以这样做,
如果从调度程序分派工作,则应设置自定义环境变量。这可以通过更改调度程序命令来实现。
然后在你的作业类中,你可以检查当前的环境,如果环境设置为“browser”,则有条件地绕过用户检查。