Rails 将脚本作为后台作业执行

2024-01-01

我有一个已作为独立功能实现的 ruby​​ 脚本。 现在我想在我的 Rails 环境中执行这个脚本,但将其作为后台作业执行会增加难度,因为它需要大量的时间处理。

添加delayed_job gem后,我尝试调用以下句子:

delay.system("ruby my_script.rb")

这是我得到的错误:

Completed 500 Internal Server Error in 95ms
TypeError (can't dump anonymous module: #<Module:0x007f8a9ce14dc0>):
   app/controllers/components_controller.rb:49:in `create'

呼叫self.delay来自控制器的方法行不通 https://github.com/collectiveidea/delayed_job/issues/371,因为 DJ 会尝试将您的控制器序列化到作业中。您最好创建一个类来处理您的任务,然后将其方法标记为异步:

class AsyncTask
  def run
    system('ruby my_script.rb')
  end
  handle_asynchronously :run
end

在你的控制器中:

def create
    ...
    AsyncTask.new.run
    ...
end

请参阅“排队作业”部分中的第二个示例readme https://github.com/collectiveidea/delayed_job.

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

Rails 将脚本作为后台作业执行 的相关文章

  • CSS:100% 宽度和背景?

    在我的页面中 有 2 3 个部分的宽度和背景为 100 当我全屏打开它时 一切正常 但当屏幕小于 960px 本节内容的宽度 时 背景图像不是整个页面 右侧的瞬间隐藏在没有背景的地方 它是白色的 你可以在这里明白我的意思 http mico
  • 如何使用哈希数组填充 select_tag?

    在 Rails 3 2 应用程序中 我尝试添加一个选择字段 该字段从外部 API 调用获取数据 该数据作为哈希数组返回 name gt NameA id gt 001 name gt NameB id gt 002 我如何使用这些数据来构造
  • 如何保持 git 存储库的公共和私有版本同步?

    我正在 Github 上发布一个开源 Rails 应用程序 可能是 MIT 许可证 我还想维护一个项目的私人分支 分支 我们将使用它作为付费服务的一部分 在这种情况下组织存储库的最佳方式是什么 而且 当我有两个项目的更新时 如何保持项目同步
  • Rails (PostgreSQL) 中文本列的默认大小

    如果我在迁移中有这个 t text body 我可以容纳多少文字 body 如果相关的话我正在使用 PostgreSQL 直接来自PostgreSQL 文档 http www postgresql org docs 8 4 static d
  • Rails 命令有什么区别:--no-test-framework、--skip-test-unit 和 -T?

    原本我以为这三者都是一样的 但现在仔细一看 却发现它们各有不同 我通过搜索找不到任何关于此的好的文档 根据导轨API http api rubyonrails org classes Rails Generators Base html a
  • Ruby on Rails 中的枚举

    我是一名 C 程序员 我正在研究 ruby on Rails 但我可能在心态或其他方面遇到了一些麻烦 我有一个投票对象 该对象可以是赞成 中立或反对 我通常会让投票对象有一个像这样的字段 private VoteEnum voteEnum
  • jQuery 自动完成滚动问题

    我在用着Rails3 jquery 自动完成 https github com crowdint rails3 jquery autocomplete在我的应用程序中 我遇到了以下问题 如果您在输入字段中输入某些内容以便显示自动完成数据并在
  • 在自定义条件下清理 SQL

    我需要创建一个简单的搜索 但我无法使用 Sphinx 这是我写的 keywords input split s queries keywords each do keyword queries lt lt sanitize sql for
  • 未使用 form_with 显示时出错

    早上好 我正在按照教程进行操作http edgeguides rubyonrails org getting started html http edgeguides rubyonrails org getting started html
  • Rails 创建 schema_migrations - Mysql2::Error: 指定的键太长

    我正在使用Rails 3 2 6和Mysql 6 0 9 但我在MySQL 5 2 25上有完全相同的错误 当我创建新数据库时 rake db create 然后当我尝试加载架构时 rake schema load 我收到此错误 Mysql
  • 在所有延迟的作业之前挂钩

    是否可以在所有delayed job任务之前运行一个方法 基本上 我们试图确保每台运行delayed job的服务器都有我们代码的最新实例 因此我们希望运行一个方法来在每个作业运行之前检查这一点 我们已经有了 check 方法并在其他地方使
  • 在 Rails App 中实现 WrapBootstrap 主题

    我刚刚购买了一个 wrapbootstrap 主题 并尝试将其插入我的 Rails 应用程序中 一些 css 如填充 导航栏 字形图标 和大多数 javascript 无法正常运行 我将所有样式表和 javascript 分别复制到 ass
  • 表单元素的自定义 HTML 错误包装器

    我想找到一种方法来自定义默认错误html div class field with errors div 参加我自己的课程 div class clearfix error div
  • 将 Rails 5.2 升级到 6.0 时出现参数错误数量错误

    我正在尝试将旧站点从 Rails5 2 升级到 6 0 然后再升级到 6 1 推荐的路径 我收到了有关参数数量错误的各种错误 其中一些错误我已通过更新或删除各种 gem 设法清除 最后我被困在了这一点上 rbenv versions 3 0
  • heroku 语言区域设置不工作 I18n::MissingTranslationData

    在我的本地电脑上一切正常 但在 heroku 上我收到错误 我的 Heroku 控制台 PC HOME PC c rails konkurranceportalen master heroku console Ruby console fo
  • 从 Rails Helper 返回多个标签的最佳方法是什么?

    我想创建一个隐藏字段并在一个助手中创建一个链接 然后将两者输出到我的 erb 应该输出结果 link to something a path form hidden field something tableize value gt som
  • 日期时间到 NSDate

    如何转换字符串2010 11 19T20 00 00Z进入一个NSDate object 我尝试过使用 dateFormatter setDateFormat yyyy MM ddTHH mm ssZ 但看起来我的自定义格式样式错误 PS
  • 设计和自定义 Rails 用户 URL

    我目前正在使用 Rails 3 2 5 和最新的 devise gem 目前用户可以访问他们的个人资料页面 example com users john doe 我想删除网址的用户部分 因此网址将是example com john doe
  • ActiveRecord 查询,按关联排序,最后一个 has_many

    我试图列出所有Users by the created at最近创建的关联记录 通讯 列 到目前为止我所拥有的 User includes communications order communications created at IS
  • 如何最好地将地址关联到 Rails 中的多个模型?

    这个问题 https stackoverflow com questions 648463 best way to model customer addresson SO 似乎与我的问题有关 但我不确定我的问题是否得到了回答 一个地址可以属

随机推荐

  • laravel 队列守护程序邮件因 SSL 错误而停止运行

    我正在运行一个 laravel 队列守护进程 它根据所采取的操作发送邮件 这是通过主管运行以确保它始终运行 一开始工作正常 但一段时间后邮件停止发送 错误没有报告到链上 但日志显示 2014 07 30 20 00 21 productio
  • 通过 gem install tiny_tds 在 OSX 10.6 上安装 TinyTDS 时出错

    我一直在尝试在 OSX 10 6 的 Macbook 上安装 TinyTDS gem 我成功安装了免费 TDS 通过以下方式确认它可以正常工作 tsql H SERVER p 1433 U username 我得到的错误宝石安装tiny t
  • 我编写了一个脚本将文件复制到备份文件夹,但独立的 webapp 文件被复制到根目录

    有谁知道为什么会发生这种情况 将所有文件复制到目的地会方便得多 我有一个文件名和文件 ID 列表 其中 3 个是电子表格 一个是我部署为 Web 应用程序的独立脚本 这三个电子表格转到正确的位置 独立的 Web 应用程序会转到根目录 我不认
  • 对 GLSL 着色器进行基准测试以比较替代实现的速度

    我想绘制二维函数z f x y 使用 OpenGL 和 GLSL 着色器 我想使用颜色图将函数的值映射到颜色 但某些颜色图是使用 HSL 或 HSV 颜色空间表示的 例如色调图 您可以 在这里和其他地方 找到不同的替代实现hsv2rgb 在
  • 无法在 Vagrant 上安装 Kubernetes

    使用本指南在 Vagrant 集群上安装 Kubernetes https kubernetes io docs getting started guides kubeadm https kubernetes io docs getting
  • 它真的是一个activex控件吗?

    我有一个相当简单的代码块 Sub Run Name on error resume next Set objShell CreateObject WScript Shell if Err Number 429 then alert Inva
  • 使用 Gradle 进行 git 描述的 Android 构建的自动版本控制

    我进行了广泛的搜索 但可能是由于 Android Studio 和 Gradle 的新颖性 我还没有找到任何关于如何执行此操作的描述 我想做基本上完全按照中描述的这个帖子 https stackoverflow com questions
  • 如何更改非英语单词的字体大小?

    In a Word 2007 https en wikipedia org wiki History of Microsoft Word Word 2007 document I manually select a sentence con
  • Git:如何从索引中删除文件而不从任何存储库中删除文件

    当你使用 git rm cached myfile 它不会从本地文件系统中删除 这是目标 但是 如果您已经对文件进行版本控制并提交 将其推送到中央存储库 并在使用该命令之前将其拉入另一个存储库 则它将从该系统中删除该文件 有没有办法只从版本
  • 字符串格式日期 - C# 或 VB.NET

    来自数据库的日期 需要格式为 mm dd yy For Each dr as DataRow in ds Tables 0 Rows Response Write dr CreateDate Next string Format 0 MM
  • 从 .h 文件 Visual Studio 创建 .cpp 文件

    我正在使用 Visual Studio 2008 我想知道是否可以根据给定的头文件创建 cpp 文件 因此 如果我有一个包含类和函数的 h 文件 它可以创建包含空白正文中输入的所有函数的代码文件 捷径 alt shift f10 VS201
  • 哪个版本的 gcc 支持 -Ofast 优化级别?

    我在 gcc 的文档中找到了 Ofast level opthttp gcc gnu org onlinedocs gcc Optimize Options html Optimize Options http gcc gnu org on
  • 重置/删除 Swing 中的边框

    这是一个非常具体的编码问题 最近 我被要求在工作中维护一些旧的 Java Swing GUI 代码 并遇到了这个问题 我已将我自己的名为 MyFilenameVerifier 的 InputVerifier 子类附加到 JTextField
  • Flutter - MultiProvider 如何与相同类型的提供者一起工作?

    例如 我试图同时获取多个流发出的数据 但其中 2 个或更多流发出相同类型的数据 比如说字符串 我的问题是 是否可以使用MultiProvider并使用多个StreamProvider 或任何提供者 但我对这种情况感兴趣 相同类型 同时仍然能
  • 流、视图、迭代器

    scala 中的流 视图 SeqView 和迭代器之间有什么区别 这是我的理解 它们都是惰性列表 流缓存值 迭代器只能使用一次 就不能回到起点重新评估价值吗 View 的值不会被缓存 但你可以一次又一次地评估它们 因此 如果我想节省堆空间
  • 如何更改asp.net core中的程序集信息?

    我想对我的 ASP NET Core 应用程序进行版本控制 我点击了这个链接 http www matthiaseinig de 2013 05 20 auto generate fileversion for all projects i
  • 计算每个场点位于轮廓内的频率

    我正在处理二维地理数据 我有一长串轮廓路径 现在我想确定域中的每个点有多少个轮廓 即我想计算轮廓表示的特征的空间频率分布 为了说明我想要做什么 这是第一个非常幼稚的实现 import numpy as np from shapely geo
  • 实例新类型(Golang)

    谁能告诉我如何从字符串创建 Type 的新实例 反映 有一些示例 但它们适用于较旧的 Go 1 之前的版本 语言 所以 如果我正确理解你的问题 你是在问当你只有类型名称作为字符串时如何创建一个对象 例如 您可能有一个字符串 MyStruct
  • java.io.File:访问文件名编码无效的文件

    因为 java io File 的构造函数采用 java lang String 作为参数 所以似乎无法告诉它在访问文件系统层时需要哪种文件名编码 因此 当您通常使用 UTF 8 作为文件名编码并且有一些文件名包含编码为 ISO 8859
  • Rails 将脚本作为后台作业执行

    我有一个已作为独立功能实现的 ruby 脚本 现在我想在我的 Rails 环境中执行这个脚本 但将其作为后台作业执行会增加难度 因为它需要大量的时间处理 添加delayed job gem后 我尝试调用以下句子 delay system r