/ / Jeśli korzystam z harmonogramu Heroku, czy nadal potrzebuję opóźnionej pracy? - rubin na szynach, heroku, praca opóźniona

Jeśli używam programu planującego Heroku, czy nadal potrzebuję opóźnionej pracy? - ruby-on-rails, heroku, opóźnione zadanie

Jestem trochę zdezorientowany. Mam kilka zadań, które chciałbym uruchomić asynchronicznie, na przykład integrację synchronizacji zapasów. W tym celu zaimplementowałem opóźnione zadanie, ale zdaję sobie sprawę, że muszę uruchamiać zadania rake: w tym celu pracuj na Heroku. Mogę używać harmonogramu Heroku do uruchamiania tego zadania prowizji co 10 minut. Moje pytanie brzmi; jeśli utworzę zadania prowizji do uruchomienia, tj. moją metodę synchronizacji zapasów, czy nadal potrzebuję zadania opóźnionego? Rozumiem, że terminarz heroku rozpoczyna „one off dynos”.

Czy zamiast korzystania z opóźnionego zadania nie mogłem po prostu uruchomić metody synchronizacji bezpośrednio, ponieważ i tak używana jest osobna hamownia? Jaka jest tutaj wartość dodana opóźnionego zlecenia?

Odpowiedzi:

1 dla odpowiedzi № 1

Harmonogram Heroku zastępuje to, co cron obsługiwałby na typowym serwerze. Opóźnione zadanie lub Sidekiq służą do asynchronicznego przetwarzania zadań z aplikacji, a nie harmonogramu czasowego.

Powód, dla którego używasz pracownika i uruchamiasz te zadaniaback-end jest taki, że serwer może zwrócić odpowiedź tak szybko, jak to możliwe, zamiast zmuszać użytkownika do czekania na zakończenie potencjalnie niepotrzebnie długiego procesu (wiele zapytań, wychodzących wiadomości e-mail, zewnętrznych żądań API itp.) .

Na przykład harmonogram może uruchamiać analizy lub aktualizacje ze skryptu co godzinę lub dzień, ale opóźnione zadanie nie.