Задать вопрос
@eldar_web

Чем отличается Sidekiq от ActiveJob в Rails?

Новичок в использовании фоновых задач, вот одно никак не могу понять.
Delayed - resque - sidekiq - одна банда, аналоги друг к другу.
Но вот ActiveJob где находится? Если он тоже является аналогом тех вещей,
то как понять использование Sidekiq поверх ActiveJob?
И почему sidekiq если используется отдельно, то для него создаются задачи в app/workers,
а если используется поверх ActiveJob, то в app/jobs?
И как лучше использовать Sidekiq: отдельно или поверх ActiveJob и почему?
  • Вопрос задан
  • 4407 просмотров
Подписаться 1 Простой Комментировать
Решения вопроса 2
LightAlloy
@LightAlloy
Ruby developer
ActiveJob - это абстракция над решениями для очередей (sidekiq, dj, rescue, можно написать свой адаптер).
Если использовать sidekiq через ActiveJob, то будет проще будет переключиться на другой вариант в случае чего.
Но будут недоступны некоторые продвинутые фичи sidekiq (https://github.com/mperham/sidekiq/wiki/Active-Job),
Ответ написан
Комментировать
blackst0ne
@blackst0ne
Фулстэк-разработчик
ActiveJob - это рельсовая прослойка для работы над фоновыми задачами.
При этом что конкретно будет выполнять эти фоновые задачи (sidekiq, rescue, и пр.) - это уже дело десятое.

Таким образом, если мы используем только ActiveJob, то мы можем хоть каждый день менять конкретного исполнителя, не переписывая кучу кода.
Сегодня мы используем Sidekiq, а завтра перешли на Delayed::Job, а послезавтра - на Resque. Если работаем через ActiveJob, то миграция будет представлять собой изменение конфига, а не переписывание во всём коде вызовы методов конкретных реализаций.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы