ruby-on-rails - 事件作业 : start a job automatically when starting server

标签 ruby-on-rails sidekiq rails-activejob

例如,我有一份工作,我希望每 1 小时重复一次。这是我的代码:

class NewsletterJob < ApplicationJob
  queue_as :default

  after_perform do |job|
     NewsletterJob.set(wait: 1.hour).perform_later user
  end

  def perform(*args)
    puts "I am busy mailing newsletter."
  end
end

我的问题是:如何调用满足两个条件的上述代码:

  • 服务器启动时自动运行。
  • 只运行一次。例如,我使用 sidekiq 作为消息队列。所以我希望下次重启服务器时,只有一个作业实例可用。

最佳答案

关于ruby-on-rails - 事件作业 : start a job automatically when starting server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42818099/

相关文章:

ruby-on-rails - 如何让 sidekiq 在 Heroku 上始终保持运行状态?

ruby-on-rails - ubuntu 13.04下sudo gem install rails报错

ruby-on-rails - 随时使用 Rails cron,设置环境

ruby-on-rails - Sidekiq 中的服务器和客户端术语是什么意思?

ruby-on-rails - Err max clients 达到 Redis/Sidekiq/Rails

ruby-on-rails - ActiveJobs 方法是实例方法还是类方法?

ruby-on-rails - 在 ActiveJob 和 Controller 之间共享数据

ruby-on-rails - 禁用 ruby​​ on rails 作业进行测试

ruby-on-rails - 使用 Ember 从服务器获取 JSON 数据

ruby-on-rails - 如何在 Ruby on Rails 网站上禁用显式堆栈跟踪