2011-01-06 5 views
0

내 관리 페이지에서 내 cron 작업을 제어하고 싶습니다.
기본적으로 데이터베이스에 내 cronjob이 있고 "즉시"내 crontab을 만들고 싶습니다.Ruby/Rails - 언제든지 gem - 루프 cron 작업

다음은 예입니다 :

require "#{RAILS_ROOT}/config/environment.rb" 
Cron.all.each do |cron| 
    if cron.at.blank? 

    every eval(cron.run_interval) do 
     cron.cmd 
    end 

    else 

    every eval(cron.run_interval), :at => cron.time do 
     cron.cmd 
    end 

    end 
end 

every 1.day do 
    command "whenever --update-crontab" 
end 

그러나 가 출력되지 않을 때마다 루프 내부의 작업 만 "정적"하나의.

가 어떻게 이 때마다 내 루프를 '이해'할 수

0 0 * * * whenever --update-crontab 
?

답변

1

당신은 아마 예를 들어, 최대 당신의 평가 문이 더 이동해야합니다

 
eval <<-EVAL 
    every #{cron.run_interval} do 
    #{cron.cmd} 
    end 
EVAL 

이 cron.cmd는 '명령'LS -a " '같은 것이라고 가정.

+0

정말 고마워요. 나는 << -EOS를 시도했지만 << -EBAL에 대해서는 몰랐습니다. :) – Frexuz

+1

문자열의 시작과 끝에 일치하는 한 원하는 이름을 사용할 수 있습니다. <<-RANDOM_NAME ... RANDOM_NAME. 열쇠는 그것 앞에 eval을 갖는 것이다. –

+0

재밌 네요. D – Frexuz