μλ³ cronjobμΌλ‘ μκ°μ μ€μ νλ €κ³ ν λ '1.month'λ₯Ό μ¬μ©ν΄μΌ νμ΅λλ€.
κ·Έλ¬λ μ΄κ²μ 맀μ μ€λ λ μ§μ λν cronjobμ μμ±νμ΅λλ€.
0 9 18 * * .....λμ μ
0 9 1 * * ..... 맀μ 1μΌμ μ€νλ©λλ€...
κ±°κΈ°μ λͺ¨λ cron μΆλ ₯μ νμνκ³ μμ΅λκΉ? 첫 λ²μ§Έ μμλ μκ°μ 9κ° μκ³ ν루μ 18μ΄ μμ΅λλ€.
# .---------------- λΆ(0 - 59) # | .------------- μκ°(0 - 23) # | | .---------- λ μ§(1 - 31) # | | | .------- μ(1 - 12) λλ 1μ, 2μ, 3μ, 4μ ... # | | | | .---- μμΌ(0 - 6) (μΌμμΌ=0 λλ 7) λλ μΌ, μ, ν, μ, λͺ©, κΈ, ν # | | | | | # * * * * * μ€νν λͺ λ Ή
μλμ, μ 체 μΆλ ₯μ λ€μκ³Ό κ°μ΅λλ€.
0 9 18 * * command
schedule.rb νμΌμ λΆμ¬λ£μ μ μμ΅λκΉ? λκ° λ¨μ΄μ Έ 보μΈλ€.
every 1.month, :at => "9 AM" do
command "..."
end
μ, λ¬Έμ κ° λ³΄μ λλ€(μ΄ λΆμΌμ μ’μ λ¬Έμκ° μλ κ² μΈμ). 1.monthμ ν¨κ» :atμ μ¬μ©νλ©΄ μΌ, μ, λΆμ μκ°μμ ꡬ문 λΆμν©λλ€. λ°λΌμ μ€μ 9μμ κ°μ μκ°μ μ¬μ©νλ©΄ μλ―Ένλ λ μ§κ° μ€λμ΄λΌκ³ κ°μ ν©λλ€.
μ΄λ₯Ό μμ νλ ν κ°μ§ λ°©λ²μ μ 체 λ μ§λ₯Ό μ§μ νλ κ²μ λλ€. λλ μ΄κ²μ΄ 보기 ννλ€λ κ²μ μΈμ νμ§λ§ μλν΄μΌ ν©λλ€: 맀 1.month, :at => "1μ 1μΌ μ€μ 9μ"
"January"λ₯Ό 무μνμ§λ§ μ±κ³΅μ μΈ κ΅¬λ¬Έ λΆμμ νμν©λλ€(λ μ§ λ° μκ° κ΅¬λ¬Έ λΆμμ μν΄ Chronic gemμ μ¬μ©ν λλ§λ€).
λμμ΄ λκΈ°λ₯Ό λ°λλλ€.
NS
μ 체 λ μ§λ₯Ό μ 곡νκ³ μΆμ§ μλ€λ©΄ λ€μκ³Ό κ°μ΄ μλν μ μμ΅λλ€.
맀 1.month, :at => "μμ΄ μ€μ 9μ"
μ΄λ κ² νλ©΄ μλν "0 9 1 * *"μ΄ μμ±λ©λλ€. λν μ½λλ₯Ό μ‘°κΈ λ κΉ¨λνκ² μ μ§ν©λλ€. :)
λμμ΄ λκΈ°λ₯Ό λ°λλλ€.
-AP
κ³ λ§μ μλ°.
λΉμ μ΄ λ§νλ―μ΄, κ·Έκ²μ μ 보μ΄μ§ μμ§λ§ μλν©λλ€!
tsommer... λ΄κ° κ²μν μμ μ루μ μ΄ μλν΄μΌ ν©λλ€. λ³΄μ ¨λμ§ λͺ¨λ₯΄κ² λ€μ.
"μ€μ 9μμ μ΄λ¬ μμ" -- μ΄κ²μ΄ κ·μΉμ λλ€! κ°μ¬ ν΄μ.
μ΄ cron μμ μ "0 0 27-31 * *"λ‘ ννν΄μΌ ν©λλ€. νμ¬ κ΅¬λ¬ΈμΌλ‘ κ°λ₯ν©λκΉ?
λ€μκ³Ό κ°μ΄ μΌλ° cron ꡬ문μΌλ‘ cron μμ μ μ λ¬νκΈ° μν΄ DSLμ λ€λ₯Έ λ°©λ²μ μ 곡νλ κ²μ΄ λ λμ μ μμ΅λλ€.
cron "0 0 27-31 * *" # ... λ
λλ μμ ꡬ문 μ΅μ μ΄ μ’μ κ²μ΄λΌλ λ° λμν©λλ€(ν¨μΉ νμ!). κ·Έ λμ Rubyλ₯Ό μ¬μ©νμ¬ μ΄ μμ μ μνν μ μμ΅λλ€.
every 1.month, :at => (27..31).to_a.map { |d| "12am January #{d}" } do
command "..."
end
Javan λΉ λ₯Έ μλ΅μ κ°μ¬λ립λλ€.
νμ¬ λ€μ ν¨μΉλ₯Ό μ¬μ©νκ³ μμ΅λλ€. μ΄μ©λ©΄ μ κ· ννμμ μ½κ°μ κ°μ μ΄ νμν μλ μμ§λ§ μ§κΈμ ν¨κ³Όκ° μμ΅λλ€.
ν΄λμ€ When::Output::Cron CRON_EXP = /[^\s]+\s[^\s+]\s[^\s]+\s[^\s]+\s[^\s]+/ def time_in_cron_syntax μΌμ΄μ€ @μκ° CRON_EXPμΌ λ @time κΈ°νΈ λ€μ parse_symbol λ λ¬Έμμ΄ λ€μ parse_as_stringμΌ λ κ·Έλ μ§ μμΌλ©΄ parse_time λ λ λ
κ·Έλ¬λ©΄ λ΄κ° ν μ μμ΅λλ€.
λͺ¨λ '0 0 27-31 * *' ... λ
2 κ°μλ§λ€ (31 μΌ) μ€ν 11μ 59λΆμ μ΄λ»κ² μμ±ν©λκΉ
2κ°μλ§λ€ 59 11 L * 0μμ
κ°μ₯ μ μ©ν λκΈ
μ 체 λ μ§λ₯Ό μ 곡νκ³ μΆμ§ μλ€λ©΄ λ€μκ³Ό κ°μ΄ μλν μ μμ΅λλ€.
맀 1.month, :at => "μμ΄ μ€μ 9μ"
μ΄λ κ² νλ©΄ μλν "0 9 1 * *"μ΄ μμ±λ©λλ€. λν μ½λλ₯Ό μ‘°κΈ λ κΉ¨λνκ² μ μ§ν©λλ€. :)
λμμ΄ λκΈ°λ₯Ό λ°λλλ€.
-AP