仅在特定服务器上调用delayed_job capistrano任务

2024-04-23

我有一个专门的服务器用于delayed_job 任务。我想启动、停止和重新启动delayed_job工作人员only这个服务器。我正在使用delayed_job提供的capistrano食谱。

当我只有 1 台服务器时,这是我的配置:

before "deploy:restart", "delayed_job:stop"
after  "deploy:restart", "delayed_job:start"

after "deploy:stop",    "delayed_job:stop"
after "deploy:start",   "delayed_job:start"

现在我想要那些钩子only应用于单独的delayed_job服务器(role :delayed_job <ip address>)。这可以优雅地做到吗?我是否必须将每个delayed_job 任务包装在元任务中?或者自己写任务而不使用延迟工作提供的任务?


当您在 Capistrano 中定义任务时,您可以将任务的执行限制为特定角色。你这样做的方法是通过:role option.

看来默认的delayed_job Capistrano配方 https://github.com/collectiveidea/delayed_job/blob/master/lib/delayed/recipes.rb做这个。

desc "Stop the delayed_job process"
task :stop, :roles => lambda { roles } do
  run "cd #{current_path};#{rails_env} script/delayed_job stop"
end

根据源码,任务从角色列表中获取:delayed_job_server_role配置变量。

回到您的问题,要将任务的执行范围缩小到特定的服务器组,请在您的服务器中定义一个新角色(例如工作人员)deploy.rb

role :worker, "192.168.1.1" # Assign the IP of your machine

然后设置:delayed_job_server_role以那个名字

set :delayed_job_server_role, :worker

就这样。现在任务将被执行,但仅限于列表中列出的服务器:worker role.

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

仅在特定服务器上调用delayed_job capistrano任务 的相关文章

  • 在 Ruby/Sinatra 中解码 Facebook 的签名请求

    由于 Facebook 不赞成使用新的 FBML 我正在寻找一种新方法来创建 显示 选项卡 向粉丝显示一个版本 向非粉丝显示另一个版本的页面选项卡 Facebook 已将数据添加到signed request 中 当用户在应用程序中选择您的
  • Rails 返回 JSON 序列化属性 with_in Different_access

    我以前有 serialize params JSON 但这会返回 JSON 并将哈希键符号转换为字符串 我想使用符号引用哈希 这在使用哈希时最常见 我向它提供符号 Rails 返回字符串 为了避免这种情况 我创建了自己的 getter se
  • Groovy 中的显式输入:有时还是从不?

    后来 仍然无法弄清楚 Groovy 是否具有静态类型 似乎没有 或者使用显式类型生成的字节码是否不同 似乎是 无论如何 回答这个问题 One of the main differences between Groovy and other
  • 避免在 Ruby 中自动从 Fixnum 转换为 Bignum

    我正在将算法从 C 移植到 Ruby 该算法有一个方法返回一个int有时会溢出 private static int NextRandom int n return 1234567890 n 12345 该算法利用溢出来避免该函数返回的值超
  • 如何检查rails上传的文件类型?

    我如何查看即将到来的文件类型 例如 csv 或 xls 请给个代码 我得到文件是这样的 aut name uploaded io original filename File open Rails root join public uplo
  • BigDecimal 无法强制转换为 BigDecimal

    这应该很简单 但它却爆炸了 有任何想法吗 d BigDecimal new 2 0 YAML load a gt d to yaml TypeError BigDecimal can t be coerced into BigDecimal
  • Ruby:在 Ubuntu 上安装 rmagick

    我正在尝试在 Ubuntu 10 04 上安装 RMagick 看起来here https stackoverflow com questions 1482823 is there an easy way to install rmagic
  • 将对象数组中的属性映射到另一个数组的更有效的 Ruby 方法?

    我不会在这里重复我的问题 但是有没有更有效的方法来写这个 def recruits names names for r in self referrals do names lt lt r display name end return n
  • 如何让 Sinatra 通过 HTTPS/SSL 工作?

    正如标题所示 谷歌没有提供任何与此相关的有用信息 如何为 Sinatra 应用程序设置和配置 HTTPS SSL 如何创建 HTTPS 路由 我以前从未在我的应用程序中使用过 HTTPS 也没有调整 Rack 其他内容的经验 所以我很欣赏详
  • Rails:渲染不起作用,仍然出现“模板丢失”

    我目前正在学习 Rails 指南 我完成了这些步骤 但仍然遇到错误 我的 Ruby 版本是ruby 2 1 1p76Rails 版本是4 0 4 按照指南的指示 我创建了一个Article Controller class Articles
  • 如何使用 Ruby 2.7.0 修复 Rails 的警告消息

    有没有人解决这个问题Ruby 2 7 0 I used rbenv并安装了 Ruby v2 7 0 然后使用创建了一个 Rails 项目Rails v6 0 2 1 目前 通过运行之一 rails s rails s u puma rail
  • (在 Ruby 中)允许混合类方法访问类常量

    我有一个为其定义常量的类 然后我定义了一个类方法来访问该类常量 这很好用 一个例子 usr bin env ruby class NonInstantiableClass Const hello world class lt lt self
  • Ruby mp3 Id3 解析

    目前我正在从事一个音乐项目 处理用户 mp3 上传 问题是我找不到适用于所有文件的 id3 库 我努力了id3 ruby and Mp3Info库 但它们都没有给我一致正确的结果 例如 最常见的问题 错误的流参数 比特率和采样率 有时是持续
  • Ruby 可选参数和多个参数

    我试图将方法的第一个参数设置为可选 后跟任意数量的参数 例如 def dothis value 0 args 我遇到的问题是 这似乎实际上不可能 当我打电话时dothis hey how are you good 我希望它将值设置为默认值
  • Rails Capistrano 3 - 如何将 production.log 文件共享到 Capistrano 的共享文件夹中?

    我正在使用 Capistrano 3 与我的 Rails 应用程序一起部署 问题是 每次我将应用程序部署到服务器时 log development log 文件都会重置 我听说可以将 production log 文件放入共享文件夹中并在每
  • 将 ruby​​ 类转换为模块比使用改进更好的方法?

    Module refine http ruby doc org core 2 0 0 Module html method i refine方法接受一个类和一个块并返回一个细化模块 所以我想我可以定义 class Class def inc
  • 回滚后是否应该删除迁移

    我对 ruby 和 Rails 相当陌生 刚刚开始了解迁移 我的问题是回滚后删除迁移的最佳实践或正确时间是什么 到目前为止 我读到的内容是回滚后是否删除迁移的观点问题 但是在团队中工作时删除迁移是否有任何重大影响 以及保留迁移文件相对于删除
  • 两个 ruby​​ 进程之间的通信可能/容易吗?

    如果我有一个 ruby 脚本Daemon顾名思义 它作为守护进程运行 监视系统的某些部分并能够执行需要身份验证的命令 例如更改权限 是否有一种简单的方法来拥有第二个 ruby 脚本 例如client 与该脚本通信并向其发送命令 询问信息 我
  • 为什么||和 或 在 Rails 中的行为有所不同? [复制]

    这个问题在这里已经有答案了 可能的重复 i true 和 false 在 Ruby 中是真的吗 https stackoverflow com questions 2802494 i true and false in ruby is tr
  • 升级到 Rails 6 时是否有一种编程方法可以检测 Zeitwerk::NameError?

    我目前正在将旧的 Rails 应用程序迁移到 Rails 6 好像项目中有些文件和里面定义的类不一致 运行应用程序测试时我没有看到此错误 但部署后我收到如下错误 Zeitwerk NameError expected file app my

随机推荐

  • 在胶子mapLayer中创建折线

    Google 地图 API 可以在地图上创建包含连接点的折线的图层 我搜索了在哪里可以找到 gluon 的 mapLayer 的示例或实现 请指教 虽然没有明确的 API 用于在对象之上绘制直线 折线或多边形MapView the MapL
  • django-guardian 和 django-rules 可以一起使用吗?

    我希望能够使用创建每个对象的权限django guardian https django guardian readthedocs io en stable overview html 但我想围绕这些权限添加一层逻辑 例如 如果有人有edi
  • 插入前检查是否有重复项

    在插入数据库之前 我使用以下代码来检查重复项 对我来说 只有在以下情况下重复才被视为重复 name description price city and enddate match foreach states to add as item
  • Python 原始字符串和 unicode:如何使用 Web 输入作为正则表达式模式?

    编辑 一旦您了解了 r 标志的含义 这个问题就没有真正意义了 更多细节here https stackoverflow com questions 2081640 what exactly do u and rstring flags in
  • 最新的 Open JDK 8 JAXB 库无法解组具有包含换行符的属性的对象

    我在 Ubuntu 16 04 上使用 Java 最近我升级到使用 oracle java8 installer 包 包版本 8u161 1 webupd8 0 安装的 Open JDK java 版本 1 8 0 161 自从进行此升级以
  • 尝试使用平板电脑下载时,我的 Android 应用程序出现设备不受支持的情况

    我在市场上有一个名为的 Android 应用程序D Bitly http bit ly mz6DIB我有一个平板电脑用户尝试下载它 但收到 设备不受支持 我仔细检查了市场设置 它说支持所有设备 我已经进行了快速谷歌搜索 但没有想到任何东西
  • asp.net core 2.0 绑定模型与十进制值

    我几个小时以来一直在寻找此案例的解决方案 但没有找到任何适合我的方法 这里我们使用逗号作为小数分隔符 当我发送一个像 15 50 这样的值时 在我的控制器中我得到的模型值为 1550 并且只有当我发送 15 50 时才有意义 我涵盖了以下主
  • 向 printf 传递太多参数

    任何已经工作了一周以上的 C 程序员都遇到过因调用而导致的崩溃printf格式说明符多于实际参数 例如 printf Gonna s and s s crash burn 然而 当你通过时 是否会发生类似的糟糕事情 too manyprin
  • Angular2 Typescript 文件的重复标识符

    在学习 Angular2 TS 快速入门之后 我的项目中的许多文件夹中都出现了重复的文件 对于浏览器 typings browser node modules angular2 typings browser 对于 es6 shim nod
  • 直接将服务注入 AngularJS 指令控制器

    我了解 Angular 依赖注入如何与指令配合使用 但希望澄清一些事情 我有一个虚拟测试指令 如下所示 app directive test function return restrict E scope controller scope
  • 如何在PHP中获取MySQL表结构?加上所有表的列表?

    我需要在 PHP 中运行什么查询才能获取数据库中给定表的结构 我需要运行什么查询才能获取所有表的列表 要获取表的列列表 请使用 DESCRIBE SQL 语句 语法如下 DESCRIBE TableName 要获取数据库上的表列表 请使用以
  • 如何使用 Delphi XE2 IDE 搜索来搜索

    我一直使用搜索来在 庞大的 应用程序源中查找内容 因此搜索有效性对我来说非常重要 目前在 Delphi XE2 IDE 中我喜欢使用 在文件中查找 包括子目录 没有其他花哨的东西 只是一个文本关键字 这工作正常 但我真正想做的是扩展我现在正
  • AFNetworking 3 x-www-form-urlencoded 发布数据

    I m trying to post data with x www form urlencoded body Posting via postman it is ok 但我无法通过 afnetworking 3 做到这一点 这是我的代码
  • 如何将 QtCreator 项目转换为 Visual Studio 项目

    我有一个 QtCreator 项目文件 pro 如何将其转换为Visual Studio 2008项目 sln 您还可以使用 qmake 命令来执行此操作 转到项目目录并输入 qmake tp vc
  • 如何使sequelize.sync()省略一些模型?

    我在数据库 mysql 中使用表和视图 因此对于开发 测试环境我想使用sync 但它在视图上崩溃 我可以以某种方式省略这些模型吗 当我想通过 Sequelize 创建和使用视图时 我使用与 Crusader 的答案非常相似的方法 在这种情况
  • 在 OAuth2.0 中使用 Facebook 访问令牌作为资源所有者凭据

    OAuth 2 0 规范定义了资源所有者密码凭证授予类型 https datatracker ietf org doc html draft ietf oauth v2 26 section 4 3 它允许直接使用资源所有者密码凭据 即用户
  • JSch get() 失败并出现 NullPointerException

    我有一个 Jax RS 服务器 它应该保存可通过 ssh 访问的文件列表 然后我可以通过 HTTP 下载或流式传输 我一直在尝试使用 JSch 的 SFTP 通道读取文件 但我不断收到NullPointerException 这是Messa
  • 如何在 C++ 中前向声明 std::set?

    为了加快编译过程 我正在尝试简化我的头文件MyClass hpp通过前向声明 STL 容器 例如 std vector std set But std set can NOT在以下代码中进行前向声明 同时std vector can be
  • 在地图函数中迭代应用 ggplot 函数

    我想为数据集中的所有变量生成一系列直方图 但显然我没有正确准备数据以便在地图函数中使用 library tidyverse mtcars gt select wt disp hp gt map function x ggplot aes x
  • 仅在特定服务器上调用delayed_job capistrano任务

    我有一个专门的服务器用于delayed job 任务 我想启动 停止和重新启动delayed job工作人员only这个服务器 我正在使用delayed job提供的capistrano食谱 当我只有 1 台服务器时 这是我的配置 befo