Может ли приложение Rails 5 использовать DelayedJob .delay () и для go ActiveJob полностью? - PullRequest
0 голосов
/ 30 марта 2020

Можем ли мы продолжать использовать .delay () - и полностью пропустить ActiveJob для всех фоновых задач - если мы перейдем на Rails 5, затем Rails 6?

Или Rails 5/6 каким-то образом заставит разработчиков переключаться в ActiveJob для любых / всех фоновых заданий? (Когда я исследую переход с 4.2 на 5, я могу найти ноль статей, посвященных возможности полного пропуска ActiveJob в пользу продолжения более простого подхода с использованием .delay)

Наше довольно большое устаревшее приложение Rails 4.2 использует DelayedJob. Метод delay () сотни раз для различных методов Model. Использование .delay () в методе модели является простым и доказало пуленепробиваемость на протяжении многих лет.

При обновлении с 4.1 до 4.2 мы были рады, что под Rails 4.2 мы можем продолжать использовать .delay () и вообще пропустить ActiveJob ,

У нас есть сотни строк кода, таких как: Foo.delay.long_task_one(arg1, arg2) и Foo.delay(run_at: 1.hours.from_now, queue: foo_queuename).long_task_two(arg3)

Мы очень хотим не тратить время разработчика на создание сотен классов ActiveJob и переделайте сотни строк кода, работающего просто отлично, и спецификации, для ненужных тонкостей дополнительного уровня абстракции и GlobalID, которые нам никогда не понадобятся.

Есть драгоценный камень activejob-perform_later который реализует метод в ActiveJob, похожий на .delay (), но гем не обновлялся за лет , поэтому мы бы предпочли полностью пропустить ActiveJob, если это вообще возможно.

...