Ruby on Rails作业NotImplementedError

时间:2016-03-14 17:43:41

标签: ruby-on-rails jobs

我正在尝试在Ruby on Rails应用程序中实现一个Job,但我一直收到这个错误:

NotImplementedError

服务器出错:

NotImplementedError (NotImplementedError):
  app/controllers/cron_controller.rb:6:in `message_10_minutes'

这是ActiveJob:

class TestSmsJob < ActiveJob::Base
  queue_as :default

  #include Plivio

  def perform(*args)
    # do my stuff
  end
end

这是对执行作业的函数的调用:

class CronController < ApplicationController
  def index
  end

  def message_10_minutes
    TestSmsJob.set(wait: 10.minutes).perform_later()
    render :layout => false
  end
end

你们知道我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,Rails会自带异步排队实现,但您仍需要指定要使用的适配器。如果你想使用内置适配器,你根本不需要捆绑任何其他gem。

以下是适配器列表 - http://api.rubyonrails.org/classes/ActiveJob/QueueAdapters.html

由于sidekiq一开始可能太难,您可以使用sucker_punch - https://github.com/brandonhilkert/sucker_punch

选择适配器后,您必须更新配置

module YourApp
  class Application < Rails::Application
    # Be sure to have the adapter's gem in your Gemfile
    # and follow the adapter's specific installation
    # and deployment instructions.
    config.active_job.queue_adapter = :adapter_name
  end
end