如何使用Ruby脚本向延迟作业添加方法

时间:2012-06-14 08:29:38

标签: ruby ruby-on-rails-3 delayed-job

我在 /myapp/scripts/myscript.rb中有一个rubyscript

当我运行ruby script/myscript.rb它执行正常,但如何在ruby脚本中使用延迟作业运行此方法?希望这有意义

--- --- myscript.rb

ENV['RAILS_ENV'] = ARGV.first || ENV['RAILS_ENV'] || 'development'
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")

def populate

    #do some stuff here

end
handle_asynchronously :populate

我得到未定义的方法'handle_asynchronously'错误

1 个答案:

答案 0 :(得分:1)

我认为handle_asynchronously只适用于方法,而不适用于顶级函数。 也许你可以声明一个这样的模块:

# scripts/myscript.rb
class Tasks
  def populate
    puts "Populating..."
  end
  handle_asynchronously :populate
end
# call it in some function
def my_user_task
  Tasks.new.populate
end