Запуск EventMachine внутри скрипта / бегуна - PullRequest
1 голос
/ 19 января 2011

Я успешно использовал em-dir-watcher , как показано в его файле example.rb из командной строки, но я обнаружил, что мне нужно вызвать метод из другого класса, и я решил пойти по сценарию / вместо этого бегущий маршрут, вызывающий рельсы.

Я скопировал / вставил пример кода и поместил его в self.methodName и обнаружил эту ошибку:

myapp / vendor / rails / railties / lib / commands / runner.rb: 48: неопределенный метод `watch 'для EventMachine: Module (NoMethodError)

Даже если я запускаю что-то совершенно простое, например:

def self.watcher
    EM.run {
        dw = EMDirWatcher.watch '.' do |paths|
            paths.each do |path|
                puts path
            end
        end
        puts "Monitoring"
    }
end

и вызов скрипта / бегуна:

script/runner "require 'rubygems'; require 'em-dir-watcher'; Myclass.watcher"

Я все еще получаю ошибку. Что я делаю не так?

1 Ответ

1 голос
/ 20 января 2011

Проведя еще один день, пытаясь разобраться в стеке, я пришел к выводу, что между em-dir-watcher и сценарием / бегуном существует некоторое странное взаимодействие.После перехода к другому гему на основе eventmachine, который мог бы выполнить ту же задачу ( directory_watcher ), все работало замечательно.

Я знаю, что между двумя драгоценными камнями существует компромисс между производительностью и характеристиками, нодля моих целей я не замечаю разницы.

...