问题描述
我的站点上有一项在管理区域中运行的任务,因此只能由我运行,运行大约需要 10 分钟。我刚刚将其转换为作为后台作业运行,并且效果很好。
我的问题是,是否有某种我可以使用的 gem,它可以让我轻松地将特定作业的状态带到我的应用程序中的特定视图中。例如,显示它是否正在运行,是否出错,是否最后一次成功等?
我在 ActiveJob 中使用了延迟作业。该任务将仅由我运行,同时运行的任务不应超过一个。该作业还有一个唯一命名的队列。
解决方法
您可以通过检查 locked_at
或 locked_by
列来了解作业是否正在运行。
您可以使用 failed_at
列检查作业是否失败。
如果您没有关于带有默认列的作业的足够信息,您可以向表中添加更多列并在作业运行时设置它们。例如,您可以添加 user_id
来跟踪该职位与哪个用户相关。