在远程服务器上执行 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 任务 的相关文章

随机推荐

  • 未捕获(在承诺中)语法错误:意外的标记“<”,“<!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 任务来正常停止其他