0

/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'エラーが発生します

4

1 に答える 1

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
于 2012-06-15T01:01:13.093 に答える