- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在读取一些传感器值,我想安排重复作业以便每隔 :00、:10、:15、:20、:25、:30、:35 等重复一次。
我在 Rails 5 中使用 clockwork/delayed_job/activeJob & foreman,我能够检索值并将值存储到数据库中。
我无法做到的是按时完成每项任务/工作,这意味着它们似乎排成一列,然后立即执行。我可以看到它们可能一次运行 5 次,而整个任务可能需要几毫秒。
时钟.rb
require 'clockwork'
require File.expand_path('../boot', __FILE__)
require File.expand_path('../environment', __FILE__)
module Clockwork
handler do |job, time|
puts "Running #{job}, at #{time}"
end
every(5.minutes, 'SensorJob') { Delayed::Job.enqueue SensorJob.new, queue: :default }
end
sensor_job.rb
class SensorJob < ActiveJob::Base
queue_as :default
def perform
@temperature = Random.new.rand(20..30)
@humidity = Random.new.rand(30..70)
SensorReading.create(temperature: @temperature, humidity: @humidity)
end
end
我错过了什么?
最佳答案
你帮了我!在描述下方:
every(5.minutes, 'SensorJob') { Delayed::Job.enqueue SensorJob.new, queue: :default }
所以我帮你!你应该使用:
Delayed::Job.enqueue SensorJob.new.perform
代替:
Delayed::Job.enqueue SensorJob.new
你必须使用SensorJob
的方法perform
!
祝你好运!
关于ruby-on-rails - 使用 Clockwork/Delayed_Job/ActiveJob 安排每 5 分钟运行一次(轮),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38178772/
遇到这个错误。 pid-file for killed process 8600 found (C:/cyncabc/tmp/pids/delayed_job.pid), deleting.
当我部署到 pre服务器一切正常。但是如果我尝试部署到 staging服务器我收到此错误: bundler: command not found: bin/delayed_job 文件 - confi
我做了 rake db:create 然后 rake db:migrate 遇到了这个错误。 rake aborted! PGError: ERROR: relation "delayed_jobs
很难说出这里要问什么。这个问题模棱两可、含糊不清、不完整、过于宽泛或夸夸其谈,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开,visit the help center . 关闭 1
我正在使用 delayed_job 并转移到一个更强大的新服务器。所以现在我想运行并行作业,就像现在一样I have the POWER! ,但对 delayed_job 是否可以运行多个并行队列感到
因此,我正在使用“延迟的作业”,并且试图弄清楚如何使我的所有邮件都被延迟。现在,我已经将handle_asynchronously放在所有的 Action 邮件程序方法中……但是我认为这行不通。 de
我正在寻找调试延迟作业类。首先,我添加了 config/initializers/delayed_job_config 以将我的日志记录移动到我的 log/production.rb 文件中。 Del
我已经有一段时间没有问题地使用 delay_job 了;主要用于排队 ActionMailer 调用(Notifier.send_later ...)。最近,它从同一工作中随机发送多封电子邮件。我将一
我在 site5.com 共享主机上使用 delayed_job(尝试了 tobi 和 collective_idea),乘客作为 rails 环境。我设法完成了工作。但是,该插件似乎在首次运行后忽略
我有 ROR 应用程序和 1 个 delay_job 进程使用 rake job:work 运行。ROR 应用在多个队列中添加 Job。 假设我们有队列 1 和队列 2。 我的问题是队列 1 中的任务
我之前设置了一个邮件程序,可以向我的所有用户帐户发送电子邮件。但现在我正在尝试调试它。所以我把它彻底清除了,它仍然给我发邮件。 我完全没有理由或理解为什么。疯狂! :D 控制者 def org_bla
我在重新启动 delayed_job 时遇到问题。 当我登录并运行 rake delayed_job RAILS_ENV=production 一切正常,所有作业都已处理,但是如果运行 RAILS_E
在安装 delayed_job gem 并在我的本地机器上成功运行后,我无法让它在我的专用服务器上运行。 我在 Gemfile 中包含了 gem“daemons”,生成了事件记录表,并成功安装/迁移了
我有一个带插件的 Rails 应用 https://github.com/tobi/delayed_job 有时作业的执行顺序与创建顺序不同。 我希望作业按照创建时的顺序执行,因为在某些情况下,要执行
我将一个作业添加到延迟的作业中,但是当我运行它时出现 NoMethod 错误 Delayed::Job.last => #Delayed::Backend::MongoMapper::Job _id:
我正在使用 delayed_job Ruby gem 就好了。 它默认为单个 worker,所以我已经完成了: script/delayed_job stop script/delayed_job -
使用 delayed_job gem,我怎样才能只停止一个进程而不停止所有工作进程? 例如: rake jobs:work 启动 worker process1 = SomeClass.enqueue
我希望我有更多信息可以放在这里,但我只是在撒网,希望有人对我可以尝试什么或寻找什么方向有一些想法。基本上我有一个使用延迟作业的 Rails 应用程序。它将需要大约 10 或 15 分钟的进程卸载到后台
我们在项目中使用 delayed_job 的命名队列。有没有办法将每个队列记录到单独的日志文件中? DelayedJob 在这样的部署脚本中启动: run "cd #{current_path};RA
我已经使用 delayed_job 在我的 Rails 应用程序中实现了长时间运行的任务连同 delayed_job_web .我的 delayed_job 配置指示作业尝试一次,并保留失败: con
我是一名优秀的程序员,十分优秀!