laravel - 如何检查 Laravel 队列中是否有作业?

标签 laravel laravel-4 queue

情况如下:

我有一个 Laravel 4.2 应用程序,可以(从第三方 API)检索 Assets 。这是一个长期存在的 Assets (它每 12-24 小时才更改一次)并且有点耗时(一个大图像文件)。我确实缓存了 Assets ,因此影响或多或少已被最小化,但仍然存在这样的情况:早上第一个登录我的应用程序的人必须等待应用程序第一次加载 Assets 。

我已经设置了一个作业,该作业将排队并每八小时运行一次。这应该确保缓存中的资源始终是新鲜的。它的工作原理是在作业运行后八小时后将其重新排队。

问题是这样的:我即将将此作业系统部署到生产中,并且我不确定如何首次运行此系统。

理想情况下,我希望有一个管理选项,其中有一个按钮,上面写着“单击此处提交作业”,但我想让它尽可能万无一失并防止人们(我不是唯一的管理员)避免多次提交作业。然而,要做到这一点,应用程序需要检查作业是否已经在队列中。我找不到一种方法以独立于实现的方式执行此操作(我正在使用 redis,但这将来可能会改变)。

另一个选择是添加一个artisan命令来运行初始进程。这样我就可以部署应用程序,运行 artisan 命令,然后就不用管它了。

所以,回顾一下,我有两个问题:

  1. 有没有办法检查队列以查看其中有哪些作业?

  2. 有更好的方法吗?

谢谢

最佳答案

当一个作业在 Laravel 队列中时,它会保存在 jobs 表中,以便您可以通过 DB 进行检查。

关于laravel - 如何检查 Laravel 队列中是否有作业?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28590992/

相关文章:

laravel - 我应该将相关模型保存在存储库中吗?

php - Laravel 4 - 捕获错误

php - 获取带有评论和标签的精选帖子 Laravel

c - 从二维数组中提取数据 block

c++ - 如何有效地销毁队列?

php - 为什么 vagrant 在运行 up 命令时会抛出身份验证错误?

php - 使用Laravel 4.2中的Chumper数据表库加入MySQL表

PHP7.1 和 Laravel 5.3 : Function mcrypt_get_iv_size() is deprecated

php - Laravel 4 - Ardent - 密码确认不匹配

c - 邻接表 : Path counter nonfunctional