Chcę tworzyć powtarzające się wydarzenia przy użyciu klejnotu Ice Cube w Railsach - moje pytanie brzmi: jak wtedy poprawnie, lub raczej efektywnie, użyć tych cyklicznych zasady uruchamiania rzeczywistych zdarzeń?Prawidłowy sposób korzystania z wydarzeń utworzonych za pomocą kostki lodu w Railsach przy użyciu codziennego zadania cron
Przykładem może być powtarzająca się faktura.
Załóżmy, że mam cykl powtarzania się lodu raz w tygodniu i zapisałem go w wierszu faktury cyklicznej, używając to_yaml. Mam teraz wiersz w bazie danych z serializowaną zasadą powtarzania. Jedynym sposobem, jaki mogę sobie wyobrazić, jest użycie każdego wiersza w bazie danych, odserializowanie zapisanych reguł powtarzania i sprawdzenie, czy musi on zostać uruchomiony dzisiaj z schedule.occurs_on? (Date.new) - to byłoby następnie wprowadzone do cronjob, który działa codziennie:
items = RecurringItem.find(:all)
items.each do |item|
schedule = Schedule.from_yaml(item.schedule_yaml)
if schedule.occurs_on?(Date.new)
#if today is a recurrence, do stuff!
end
end
Wygląda to dla mnie bardzo nieefektywnie - ale może to być całkowicie błędne. Czy nie ma lepszego sposobu na wykorzystanie Ice Cube?
Spróbuj spojrzeć na to w dowolnym momencie, jest to całkiem proste w użyciu i działa przyjemnie. https://github.com/javan/whenever – MatthewFord
Nie jestem zaznajomiony z Ice Cube, ale korzystamy z Resque Scheduler w mojej pracy regularnie (kalambur przeznaczony). Wyślij mi e-maila, jeśli miałbyś ochotę spróbować i potrzebujesz pomocy. – Tass