微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

作业范围 / 队列范围 / Laravel 范围变量 / 可用于运行作业的变量 / 从 Laravel 作业返回数据

如何解决作业范围 / 队列范围 / Laravel 范围变量 / 可用于运行作业的变量 / 从 Laravel 作业返回数据

我知道作业应该异步运行,并且它们不应该返回值。

不过,我正在寻找一种解决方案,以某种方式传递在工作中获得的“向上”信息。它不必通过 return 语句,它可以通过服务中的其他 $this->variable 或任何其他方式。最好在作业中间件或队列管理中的某个地方使用它(但我不知道如何到达这里)。

命令 PHP artisan queue:listen 连续工作(当作业完成时,它显示 [1] Processed:,[2] Processed:),这不是异步的,我想到这里并即时检查从工作中获得的变量,并以此为基础做出一些决策。

为什么?我连接到外部 webhook 服务,后来不得不运行消耗 API 限制的作业。 作业知道还剩下多少令牌。如果我达到 0,我想延迟队列中的所有其他作业,甚至不启动它们。所以它或多或少是 Laravel 6 中的 API 节流机制。

我知道我可以将这些信息存储在数据库中,然后在开始工作之前在中间件中读取它。但我仍在寻找一个更简单的解决方案,拥有一个“laravel-wide”范围来保留变量。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。