Chcę zrobić task, który będzie odpalany z crona - jego zadanie będzie zalogowanie się na skrzynkę email - pobranie nieprzeczytanych maili i ich obróbka. Pasuje mi tu zrobienie job’a - ale nie wiem czy tak będzie rails way jeżeli zrobię Job a w tasku po prostu go wywołam . Czyli rake task będzie miał tylko i wyłącznie wywołanie Joba (no - ewentualnie sprawdzenie, czy Job się własnie nie wykonuje)
Nie chcę tworzyć u siebie złych nawyków…
Ok, whenever kiedyś widziałem - ale nie pamiętałem, że może on odpalać joby - będzie git. Co do kolejki to jeszcze doczytam - zatrudnię do tego sidekiq. rails runner nie znałem
Biorąc pod uwagę charakter zadania… sprawdzanie poczty… jest mała alternatywa dla cron. Przecież samo zadanie może po zakończeniu przetwarzania dorzucić siebie do kolejki z czasem wykonania +1h w przyszłość czy inny interwał
Traktuj rake task tylko i wyłącznie jako miejsce gdzie wywołasz tylko jakiś serwis/klasę (albo zakolejkujesz joba w tle który to zrobi) w której zawrzesz logikę.
Rake taski wywołujesz poza web request lifecycle, czyli “w tle”. Dlatego jedyne zadanie raka nie powinno być wrzuceniem Joba na kolejkę. Raczej zgadzam się z @raderek w kwestii używania rake w taki sposób, że odpalasz w nim np. serwis, ponieważ wtedy prościej testować logikę. Jednak nie jest to regułą.