2015-01-05 5 views
2

나는 사용자 rake와 rufus을 시도하고 있습니다. 루페가 내 레이크 작업을하고 싶지만 다음과 같은 오류가 발생합니다. Don't know how to build task 'inbox:process_inbox'Rake with Rufus를 사용합니다.

lib 디렉토리/작업/

namespace :inbox do 
    task :process_inbox do 
    logger = Logger.new(Rails.root.to_s + "/log/scheduler.log") 
    logger.info "Rufus Here!" 
    end 
end 

rufus_scheduler.rb

require 'rufus-scheduler' 
require 'rake' 

scheduler = Rufus::Scheduler.new 

scheduler.every '10s', :first_at => Time.now + 3 do 
    Rake::Task["inbox:process_inbox"] 
end 

답변

2

(... 간단한 https://www.google.com/?#q=rails+don%27t+know+how+to+build+task했다) 이미 응답 한 (가! 루퍼스 - 스케줄러의 창조자를)

(inbox_tasks.rake하는 inbox_tasks.rb 이름을 변경) 문제는 레이크 작업이 .rake 파일 대신 .rb 파일에 정의되어 있다는 것입니다.

향후 도움이 될만한 세부 정보 추가.

새로운 레이크 작업을 생성하는 동안 레일스 생성기를 사용하여 적절한 구조로 파일을 자동으로 생성 할 수 있습니다.

예 : 내용 lib/tasks/inbox.rake라는 이름의 파일이 생성됩니다

> rails g task inbox process_inbox 
create lib/tasks/inbox.rake 

실행 :

namespace :inbox do 
desc "TODO" 
task process_inbox: :environment do 
end 

end 

작업 정의에 DESC을 갖는 것이 중요입니다; 그 레이크 작업이 rake -T inbox 또는 상세한 답변을 rake -T | grep inbox

> rake -T inbox 
rake inbox:process_inbox # TODO 
+1

감사 프라 카쉬 중 하나를 실행하여 정의하고 사용할 수 있는지 확인이 가능합니다. 받아 들여지기를 바랍니다. – jmettraux