Zeitgesteuerte Programmausführung ohne cron

Hin und wieder ist nötig Scripte/Programme zu einem bestimmten Zeitpunkt auszuführen. Auf unixoiden System wird in der Regel cron oder at dafür benutzt. Bei Windows kommt hierfür häufig die Services zum Einsatz. Wenn all dies nicht möglich ist oder man lieber bei Ruby bleiben will, kann unseren heutigen Script-Tip dafür benutzen.

Bei dieser Lösung wird lediglich Ruby (und selbstverständlich das auszuführende Programm) benötigt.

[ruby]

#!/usr/bin/ruby

def background_run_at(time)
fork do
sleep(1) until Time.now >= time
yield
end
end

heute = Time.now
mittag = Time.local(heute.year, heute.month, heute.day, 12, 0, 0)
raise Exception, "Es ist bereits mittag" if mittag < Time.now

background_run_at(mittag) { puts "Am mittag ausgeführt!" }

[/ruby]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.