如何检查作业是否在Laravel队列中?

问题描述 投票:6回答:1

这里是情况:

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

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

问题是这样的:我将把这个作业系统部署到生产中,而且我不确定如何第一次开始运行。

[理想情况下,我想有一个管理选项,其中有一个按钮,上面写着“单击此处提交工作”,但我想使其尽可能地简单并防止他人使用(我不是仅限管理员)。为此,应用程序需要检查并查看作业是否已经在队列中。我找不到一种以实现独立的方式执行此操作的方法(我正在使用redis,但将来可能会更改)。

[另一种选择是添加artisan命令以运行初始过程。这样,我可以部署该应用程序,运行一个artisan命令,而不必理会它。

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

  1. 是否可以检查队列以查看其中有哪些作业?

  2. 还有更好的方法吗?

感谢

laravel laravel-4 queue
1个回答
0
投票

如果保证它是队列中唯一的东西,则可以使用类似的内容:

if (Queue::size() === 0) {
    Queue::push(...);
}
相关问题

Laravel 队列 - 记住属性状态?

如果 laravel 队列批处理中的一个作业失败了怎么办?

Laravel Job 不受数据库数据更改的影响……真的吗?

等待功能是什么

如何使用 javascript 检查选中的复选框是否连续排列

NodeJS amqp:是否可以在通道关闭操作完成之前调用 channel.close() 方法后立即使用消息?

如何在 Laravel 中使用自定义中间件检查用户权限

Cron 作业在 ubuntu Docker 容器中不起作用

如何使用 web socket 告诉我的前端后台作业已经完成?

Github Actions:如何在 WF 中检索运行时作业 ID?

如何在 Gitlab 中跳过作业而不是失败管道

我的Eloquent没有选择正确的时间数据,请帮助我理解

如何从从数据文件读取的数组中删除团队名称(字符串)?

如果用户未登录,如何在 Laravel 中检索有限记录,如果用户已登录,如何检索所有记录?

如何在表格中查找和更新一行? (消息计数器)

检查列中的值是否存在于另一个文件中并从另一个文件打印行

如何使用 Java 检查设备是否在 android 中被远程访问?或 cordova 的 javascript?

我无法检查下拉列表是否包含标题“职位”

Rails (6.1) 中是否有一种方法可以在没有请求对象的情况下检查应用程序是否在本地部署或运行?

检查列表 A 中的字符串是否存在于列表 B 中(通过正则表达式)

热门问答
最新问题