在远程服务器上执行 rake 任务

2024-04-25

生产环境的物理架构包括多台执行不同作业(rake 任务)的机器,所有这些机器都在同一个数据库上。

其中一项工作将完成大量工作UPDATE如果其他作业正在运行,则通常会返回 postgres 死锁的表。

我已经有一个 rake 任务来正常停止其他作业,但我只能从本地计算机执行它。

我想要实现的是:

task :big_update => :environment do
  stop_tasks_on_another_servers

  # do the SQL UPDATE
  ...
end

其中 stop_tasks_on_another_servers 应该执行rake task在其他服务器上。

我最好的尝试是使用https://github.com/capistrano/sshkit https://github.com/capistrano/sshkit宝石。与 Capistrano 使用的相同,但我仍然缺少一步。 我正在生产机器的 Rails 控制台上尝试以下操作:

require 'sshkit/dsl'
hosts = ['machine1', 'machine2']

on hosts do
  within "/home/me/project/current" do
    with rails_env: :production do
      rake "stop_tasks"
    end
  end
end

但它返回:

INFO [70a0610a] Running /usr/bin/env rake stop_tasks on machine1
SSHKit::Command::Failed: rake stdout: Nothing written

我缺少什么或者有更简单的方法来执行远程任务吗?


查看Rake 远程任务 https://github.com/seattlerb/rake-remote_task。这是一个向您展示其工作原理的片段:

require 'rake/remote_task'

set :domain, 'abc.example.com'

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

在远程服务器上执行 rake 任务 的相关文章

  • 执行 rvm use 2.0.0 --default 时收到“警告!路径未正确设置”

    以上第一次不起作用 第二次起作用 尝试将任何新 shell 窗口的 ruby 版本设置为 2 0 0 Doing rvm use 2 0 0 default gives Warning PATH is not properly set up
  • 捆绑包 - 从另一台电脑复制粘贴宝石

    我正在尝试设置 Rails 应用程序 该应用程序依赖于大量的宝石 宝石已预先安装在vendor gems我从朋友那里获得的副本的文件夹 现在 考虑到那些闭源宝石的不可用性 bundle install path home umang pro
  • 如何保存包含框架/iframe 的完整 html 页面?

    在网页抓取期间 我想将当前页面的 html 保存到文件中以供以后调试 browser html在大多数情况下有帮助 但是当页面包含 iframe frame 时 它 的内容不会返回browser html 我必须用类似的东西单独得到它bro
  • AJAX Rails 验证

    我的表单和验证可以很好地处理常规的 http 请求 我希望它使用 AJAX 我知道我可以在客户端进行验证 但这似乎是多余的 因为我已经在模型中定义了验证 当用户填写表单时 我想就他们的条目向他们提供反馈 在 AJAX 表单中使用 Rails
  • Ruby Regex 舍入尾随零

    我正在寻找一个正则表达式来删除十进制数字中的尾随零 它应该返回以下结果 0 0002300 gt 0 00023 10 002300 gt 10 0023 100 0 gt 100 1000 gt 1000 0 0 gt 0 0 gt 0
  • Rails 的 Puma Systemd 配置不起作用

    我已经完成了一个使用 Ruby on Rails 构建的应用程序 现在我想将其托管在 AWS 上的 EC2 实例上 我已经为其配置了服务器 并且正在使用pumaHTTP服务器作为应用服务器 在生产中启动应用程序总是需要我运行RAILS EN
  • 在 Rails 3 和 ActionMailer 中,是否可以使用 TLS over SSL(不是 StartTLS)发送电子邮件?

    我想使用 ActionMailer 从我的铁路应用程序发送电子邮件 我有一个想要使用的现有邮件服务器 但它仅支持端口 465 上的 SSL TLS 但是 它不支持 StartTLS 通常在端口 587 上 谁能建议一种实现这一目标的方法 据
  • 如何从 Ruby 2.0 中的字符串数组获取值

    我有这个字符串数组 array nike air nike steam nike softy nike strength smooth sleeper adidas air addidas jogar adidas softy adidas
  • 红宝石和纱线

    I have an error with my RoR project when I try to start it using Run shift f10 但是当我使用启动服务器时rails s在控制台中 它有效 Your Yarn pa
  • 如何编写运行 Rails db:migrate 任务的 rake 任务?

    我想运行 db migrate VERSION 0 然后在我自己的 rake 任务中运行 db migrate 我对如何做到这一点感到困惑 我需要特殊的要求声明吗 我的 rake 任务将驻留在 Rails 应用程序的 lib tasks 目
  • 如何在 RoR 中实施成就系统

    我正在尝试在我的 Ruby on Rails 应用程序中实现一个成就系统 但效果很差 我有一长串想要检查的成就 所有这些都是由各种控制器中的某些创建操作触发的 我的想法是我将拥有一个成就模型 其中包括控制器及其响应的操作 然后对创建进行之前
  • mod_http_upload - 使用 Ruby on Rails 上传 HTTP 文件 (XEP-0363)

    我想在我的聊天应用程序中的用户之间传输图像 我正在使用 ejabberd 服务器进行聊天 据我发现 可以做到这一点的模块是mod http upload HTTP 文件上传 XEP 0363 我不知道如何实现这一点 任何人都可以帮助我弄清楚
  • 从架构中删除表 - Rails

    我想删除架构中的一个表 我在第一次启动项目时创建了数据库并希望删除该表 这样做的最佳方法是什么 I tried rails g migration drop table installs但这只会创建一个空迁移 Schema create t
  • Rails simple_form:自定义输入id

    我想把用Rails simple form生成的几个表单放在一页上 并用javascript对它们进行操作 然而 simple form 为表单中的各个输入生成了相同的 id 因此我想用我自己的 id 替换生成的 id 现在我有一行 和 H
  • 查询参数和assert_generates/assert_routing - 我缺少什么?

    我想我已经介绍了使用查询参数测试路由的排列 但没有一种方法通过 在我的 paths rb 中 我有以下内容 resources items 然后对于我的功能测试我有 require ruby debug require test helpe
  • 使用 rbenv 在 MacOS 上安装 Ruby 2.6.0 失败

    我在 Mojave 上有一台 Mac 它无法安装开发所需的一些基本内容 rbenv install 2 6 0 Downloading openssl 1 1 1d tar gz gt https dqw8nmjcqpjn7 cloudfr
  • 尝试使用 Rails 和 PostgreSQL 生成模型时,命令挂起且没有错误

    使用该命令时 rails generate model Event name string 什么也没发生 我必须按 CTRL c 我使用的版本是 红宝石 2 1 1p76 导轨4 1 0 PostgreSQL 9 3 4 Mac OS X
  • 通过名称查找进程ID

    如何在 Ruby 中通过名称或完整命令行找到 pid 而不调用外部可执行文件 我正在将 SIGUSR2 发送到命令行包含的进程ruby job rb 我想在不打电话的情况下执行以下操作pgrep uid Process uid pid pg
  • 思考狮身人面像和控制台

    我在 webfaction 上思考 sphinx 时遇到问题 当我在 osx 上本地执行时没有问题 I search gt gt ThinkingSphinx 搜索 雷蒙德 我的回应是这样的 gt 有任何想法吗 thx sg 如果你还没有
  • NoMethodError 未定义方法“名称” for nil:NilClass

    我有两个模型帖子和类别 我试图在我的索引和帖子显示视图中显示每个帖子的类别名称 我正在使用表连接 但问题是 虽然在我的显示视图中类别显示正确 但它在索引视图中给出了 NoMethodError undefined method name f

随机推荐

  • 未捕获(在承诺中)语法错误:意外的标记“<”,“<!DOCTYPE”...在React中不是有效的JSON

    这是我在 Node 中的后端代码 import express from express import fetch from node fetch const PORT process env PORT 3001 const app exp
  • 如何从函数内将数据推送到可读流?

    我正在努力实现以下目标 功能getPaths读取目录路径并将它们推入readable找到它们后进行流式传输 The readable流将传入路径保持管道 流式传输 到write当它接收到路径时进行流式传输 Code const fs req
  • 将 clang-format 与 C++/CLI“针对每个”一起使用

    我目前尝试使用格式化 C CLI 代码clang 格式 版本 9 0 0 我不知道如何处理for each声明 Before for each auto i in I 之后 例如 Visual Studio 中的 CTRL K CTRL D
  • Windows 10 WSL - Maven 配置

    有没有办法配置 Windows Maven 和 WSL Maven 以使用相同的 m2 repository and settings xml In my bashrc从 WSL 我添加了M2 HOME使用与 Windows 10 相同的安
  • 通过平移手势或拖动更改视图 Alpha

    我想要一个 UIView 在平移手势上拖动到屏幕底部 但当它到达屏幕底部时 视图 alpha 应该缩小到 零 反之亦然 当我向上拖动视图时 UIView alpha 应缩小到 1 但问题是视图的 Alpha 缩小到 零 平移一半屏幕时或有时
  • 如何使用新的流 API 在 Dart 中注册自定义事件

    我正在尝试注册 CustomEvent https developer mozilla org en US docs DOM Event CustomEvent https developer mozilla org en US docs
  • 原始数据转JPEG格式-JAVA

    我尝试使用 JPEGEncoder 将原始数据 ByteArray 转换为 JPEG 格式 但在移动设备上速度太慢 我已经在移动设备上测试过 我怎样才能在java中做同样的事情 我将把原始数据字节发送到java并用java将其编码为JPEG
  • 如何解密Lua字节码?

    早上好 我正在尝试破译 Moon 字节码 但我无法以任何方式 有人可以帮助我吗 我有这个 例如 code 27 76 117 97 81 0 1 4 4 4 8 0 如何将此字节码解密为文本 我已经在这里搜索 http www asciit
  • 如何使用unix“find”命令查找所有cpp和h文件?

    我知道要找到所有 h我需要使用的文件 find name h 但如何找到所有 h AND cpp files find name h print o name cpp print or find name h o name cpp prin
  • 应该是 WebAPI 还是 asmx

    我应该为我的两个简单 API 使用 ASMX 服务还是 ASP NET Web API 我想在我的 ASP NET MVC 项目中创建两个简单的 API 一个接受 3 个参数 currentUserID DataType ActionNam
  • C# 中的类型与强类型

    在 C 中 有什么理由说强类型与只是typed 当有人说类型化类时 我想到的是对象以外的某种类型 除了 object 之外 几乎所有内容都是用 C 编写的 一旦定义了一个不是对象的类 该类就是一种类型 不再从那里输入它 顺便说一句 这不是关
  • 为什么两个字符串文字相加不使用operator+?

    编辑 我已经重新格式化了帖子以使其更加清晰 为什么这有效 struct A struct B B A void operator const B const B int main A a1 a2 a1 a2 而这不 struct B B c
  • 排序数组中的最小成本路径

    给定一个排序数组A e g 4 9 10 11 19 搬家费用i gt j is abs A j A i 从给定元素开始 例如10 找出成本最低的路径 而无需两次访问同一元素 所以在这个例子中解决方案是10 gt 9 gt 4 gt 11
  • 将图像裁剪或遮罩成圆形

    使用 ImageMagick 或 GD 库将图像裁剪或遮罩成圆形形状的最佳方法是什么 请注意 解决方案存在于 其他 问答网站上 但不存在于 StackOverflow 上 这是使用 ImageMagick 的一种方法 无需使用遮罩即可实现此
  • Python 中的归一化互相关

    最近几天我一直在努力计算两对向量 x和y 的自由度 参考Chelton 1983 它是 根据 Chelton 1983 的自由度 https i stack imgur com O0DqE png 我找不到使用 np correlate 计
  • 像随机关卡生成一样自由流动,只有一种可能的解决方案?

    我已经实现了在这个问题中标记为正确答案的算法 流畅类游戏随机关卡制作用什么 https stackoverflow com questions 12926111 what to use for flow free like game ran
  • 在 Uvicorn/FastAPI 内发出下游 Https 请求的正确方法是什么?

    我有一个 API 端点 FastAPI Uvicorn 除此之外 它还向另一个 API 请求信息 当我使用多个并发请求加载 API 时 我开始收到以下错误 h11 util LocalProtocolError can t handle e
  • 如何在创建后将 VB.NET DataTable 列定义为主键

    我正在使用 VB NET dataAdapter 从 Oracle 数据库导入表 我使用 fill 命令将导入的数据添加到数据集中 在 DataTable 已填充数据后 如何将 DataTable 的特定列定义为 PrimaryKey 只要
  • 灵活地将新数据附加到 yaml 文件

    我有不同的 yaml 文件 它们可能具有不同的嵌套结构 文件1 yaml test3 service1 name1 somedata name2 somedata 文件2 yaml test1 app1 app2 somedata app7
  • 在远程服务器上执行 rake 任务

    生产环境的物理架构包括多台执行不同作业 rake 任务 的机器 所有这些机器都在同一个数据库上 其中一项工作将完成大量工作UPDATE如果其他作业正在运行 则通常会返回 postgres 死锁的表 我已经有一个 rake 任务来正常停止其他