Witam,
Zastanawiam się jak rozwiązać problem podany w temacie. Chodzi mi o to, żeby z tabeli zostały usuwane rekordy starsze niż 5 dni.
Witam,
Zastanawiam się jak rozwiązać problem podany w temacie. Chodzi mi o to, żeby z tabeli zostały usuwane rekordy starsze niż 5 dni.
YourTrickyModel.delete_all(:conditions => ["created_at > ?", 5.days.ago])
uruchamiane z crona.
Mozna pewnie ladniej z jakimis named_scope
Użyj crona i niech on wywołuje co jakiś czas coś w stylu ./script/rails runner 'Somethig.delete(:conditions => ["created_at < ?", Time.now - 5.days])'
(Sam sprawdź jaka dokładnie jest składnia polecenia usuwania)
Alternatywnie, zamiast crona, możesz przygotować takie usuwanie jako wynik jakiejś akcji - albo specjalnie do tego celu stworzonej (“POST /cleaning?yes”), albo przy okazji jakiejś innej czynności - tylko nie wybieraj do tego celu akcji, która jest wywoływana często, żeby jej niepotrzebnie nie spowalniać.
Najczystszą metodą (moim skromnym zdaniem) jest chyba przygotowanie skryptu z tym poleceniem usuwania i odpalanie runnera z crona: 0 6 * * * cd /src/app && ./script/rails runner script/cleaning.rb
odpowiedzią jest gem whenever
A do obsługi crona najlepiej użyć: http://github.com/javan/whenever, żeby wszystko siedziało w aplikacji.
WOW! 3 odpowiedzi w ciagu 30 sekund! Jesteśmy zajeb… community
Raczej community nolife’ów
To gdyby to się działo w piątek wieczorem ;]