如何在 Rails 中使用 Resque 指定用于所有作业的默认队列?

2024-01-02

我希望所有排队调用都默认到某个队列,除非另有指定,这样它是 DRY 并且更易于维护。为了指定一个队列,文档说要在类中定义一个变量@queue = X。所以,我尝试执行以下操作,但没有成功,有什么想法吗?

class ResqueJob
  class << self; attr_accessor :queue end
  @queue = :app
end

class ChildJob < ResqueJob
  def self.perform
  end
end

Resque.enqueue(ChildJob)

Resque::NoQueueError: Jobs must be placed onto a queue.
from /Library/Ruby/Gems/1.8/gems/resque-1.10.0/lib/resque/job.rb:44:in `create'
from /Library/Ruby/Gems/1.8/gems/resque-1.10.0/lib/resque.rb:206:in `enqueue'
from (irb):5

在 ruby​​ 中,类变量不是继承的。这就是 Resque 找不到您的 @queue 变量的原因。

你应该定义self.queue在你的父班里。 Resque 首先检查 @queue 是否存在,然后再查找queue类方法:

class ResqueJob
  def self.queue; :app; end
end

class ChildJob < ResqueJob
  def self.perform; ...; end
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Rails 中使用 Resque 指定用于所有作业的默认队列? 的相关文章

随机推荐

  • Android可扩展列表:具有不同布局的组

    我想为每个组显示不同的子布局 例如 Override public View getChildView int groupPosition int childPosition boolean isLastChild View convert
  • @OnClick 在 ButterKnife 库的实现中不起作用

    OnClick在 ButterKnife 库的实现中不起作用 当我点击Button 什么也没有发生 这是我的完整代码 public class MainActivity extends ActionBarActivity InjectVie
  • CMake 在 Qt6 安装中找不到包

    我正在尝试通过 CMake 构建项目 并将环境变量 Qt6 DIR 设置为包含 Qt6Config cmake 的目录 然而 构建似乎无法在 Qt6 安装中找到它所需的任何其他依赖项 我不确定接下来需要做什么 我看到对其他可能的环境变量 如
  • Visual Studio 解决方案资源管理器锁定

    我在使用带有 TFS 的 Visual Studio 2005 时遇到问题 解决方案资源管理器有时会停止响应交互 相反 它会发出蜂鸣声 就像我试图单击一个可见模式对话框的父窗口一样 但没有一个 到目前为止 我发现要做的唯一一件事就是重新启动
  • unique_ptr 运算符=

    std unique ptr
  • 如何按降序打印频率?

    我已经看过其他类似的问题 但无法将答案应用到我的程序中 目前频率按升序打印 我该如何更改才能使其按降序打印 from sys import argv frequencies for ch in ABCDEFGHIJKLMNOPQRSTUVW
  • 为什么要用!!当将 int 转换为 bool 时?

    以这种方式将整数转换为布尔值的原因是什么 bool booleanValue integerValue 而不仅仅是 bool booleanValue integerValue 我所知道的是 在 VC 7 中后者会导致C4800警告 htt
  • swift 2 解析 facebook SDK ios 9

    我正在尝试通过 Facebook 登录用户 在以前的 swift 1 2 版本中 一切都工作得很好 但迁移后我似乎无法通过我的 FB 帐户登录 但仍然收到错误消息 canOpenURL 失败的 URL fbauth authorize cl
  • iOS 上出现 UnsatisfiedLinkError 但 Android 上没有,loadLibrary 总是成功

    我有一些 Java 和 C 代码 可以在两个平台上编译并构建本机库 我可以验证这些库是否包含我期望的功能 并且 Java 能够在 Android 和 iOS 上加载这些库 在 Android 上 一切顺利 没有崩溃 但在 iOS 上 我遇到
  • Discord 机器人“有时”无法显示表情

    作为一名法国昆特牌玩家 我构建了一个discord 机器人 使用node js 和discord js 来在您命名卡片时显示该卡片的信息 它使用一些自定义表情来显示它的某些部分 它在几周内运行良好 但最近有些卡片在被调用时不显示表情 我不知
  • wagon ssh / scp:没有可用于访问存储库的连接器...默认类型使用可用工厂 WagonRepositoryConnectorFactory

    这是 wagon ssh 2 10 的错误吗 什么可能有效 例如 Maven Wagon SSH 和 pom 设置的哪种组合可以恢复 Maven 3 0 5 和 wagon ssh 2 4 的行为 在我的 pom xml 中升级到 wago
  • R 脚本和库预加载?

    我创建了一个 R 脚本 它需要首先加载一些库 问题是脚本需要 1 6 秒才能完成计算 使用 Linux 命令 time 多次测量 而加载库只需要 0 7 秒 该脚本运行频率很高 因此库加载的延迟几乎占了实际工作量的80 有什么方法可以预加载
  • 为什么 Spring 报告工厂方法 arg 不明确?

    我正在尝试创建这个 bean
  • “docker images ls”有什么作用?

    我查阅了文档以了解命令之间的区别docker image 管理图像 和docker images 列出图像 所以第二个选项似乎是一个捷径docker image ls其中还列出了图像 我注意到的是 跑步时docker image ls or
  • 跨 Node.js 和 nginx 的身份验证

    由于我的大部分内容都是静态的 我计划让 nginx 来处理静态文件的服务 但静态内容也是私有的 不同的用户有不同的内容 应用程序本身是用node js express js编写的 我想知道我应该如何处理身份验证 授权 有没有什么 任何 ng
  • 在 Amazon EC2 中,如何将 EBS 卷复制到另一个用户?

    我已经使用我的亚马逊凭证创建了一个亚马逊 EBS 卷 我的客户向我提供了他的客户凭证 以便我为他创建一台 EC2 机器并附上我创建的磁盘 我该怎么做 如果重要的话我正在使用网络控制台 让我补充一点 当我在客户的帐户中创建卷并将快照 ID 设
  • 找不到“Google/Analytics.h”文件 - XCode 7

    我在将 Google Analytics SDK 集成到我的 iOS 项目中时遇到很多麻烦 我正在使用 XCode 7 并针对 iOS 7 使用 Swift 2 0 不过我可以让示例正常工作 尽管没有转换为 Swift 2 0 我尝试过通过
  • 如何使用 MATLAB 自动填充任意图像?

    这是基于此答案的进一步问题 如何在 MATLAB 中实现鱼眼镜头效果 桶形变换 https stackoverflow com questions 2589851 how can i implement this visual effect
  • Android - 警报有时在很长一段时间后不会触发

    我的应用程序有一个大问题已经好几天了 如果我的英语事先不是那么地道 我深表歉意 我实现了一个 AlarmManager 让我的应用程序的用户可以选择在当前或第二天的任何时间启动特定服务 所以例如用户可能选择将我的服务时间设置为明天上午 08
  • 如何在 Rails 中使用 Resque 指定用于所有作业的默认队列?

    我希望所有排队调用都默认到某个队列 除非另有指定 这样它是 DRY 并且更易于维护 为了指定一个队列 文档说要在类中定义一个变量 queue X 所以 我尝试执行以下操作 但没有成功 有什么想法吗 class ResqueJob class