情况如下:
我有一个 Laravel 4.2 应用程序,可以(从第三方 API)检索 Assets 。这是一个长期存在的 Assets (它每 12-24 小时才更改一次)并且有点耗时(一个大图像文件)。我确实缓存了 Assets ,因此影响或多或少已被最小化,但仍然存在这样的情况:早上第一个登录我的应用程序的人必须等待应用程序第一次加载 Assets 。
我已经设置了一个作业,该作业将排队并每八小时运行一次。这应该确保缓存中的资源始终是新鲜的。它的工作原理是在作业运行后八小时后将其重新排队。
问题是这样的:我即将将此作业系统部署到生产中,并且我不确定如何首次运行此系统。
理想情况下,我希望有一个管理选项,其中有一个按钮,上面写着“单击此处提交作业”,但我想让它尽可能万无一失并防止人们(我不是唯一的管理员)避免多次提交作业。然而,要做到这一点,应用程序需要检查作业是否已经在队列中。我找不到一种方法以独立于实现的方式执行此操作(我正在使用 redis
,但这将来可能会改变)。
另一个选择是添加一个artisan
命令来运行初始进程。这样我就可以部署应用程序,运行 artisan 命令,然后就不用管它了。
所以,回顾一下,我有两个问题:
有没有办法检查队列以查看其中有哪些作业?
有更好的方法吗?
谢谢
最佳答案
当一个作业在 Laravel 队列中时,它会保存在 jobs 表中,以便您可以通过 DB 进行检查。
关于laravel - 如何检查 Laravel 队列中是否有作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28590992/