2017-01-30 25 views
0

У меня есть несколько запросов относительно отложенной работы. Сейчас я сконфигурировал эти два камня в разработке. Но я не уверен, нужно ли мне их использовать или даже использовать, как использовать его на сервере.Задержка работы: когда и как использовать

gem 'delayed_job_active_record' 
gem 'daemons', '~> 1.2', '>= 1.2.3' 
  1. У меня есть простое приложение, которое отправлять электронные письма около 300-400 клиентов в два раза в год. Нужно ли использовать затянувшийся камень для такого небольшого количества писем? Наш сервер не занят в эти два раза в году.

  2. Если я использую задержанную работу, я должен сначала запустить демон. В разработке я делаю это так: bundle exec rake jobs:work. Поскольку этот процесс всегда будет работать на сервере. Вызывает ли это проблема производительности? Должен ли я использовать другой сервер или что-то только для запуска процесса задания задержки?

  3. И наконец, как выполнить команду в производстве bundle exec rake jobs:work. В настоящее время я открываю терминал и запускаю команду. Но я думаю, что если я закрою терминал, процесс также остановится. Итак, как мне начать, чтобы он работал на заднем плане?

+1

Это только мое мнение, но я не думаю, что это слишком много, я не думаю, что это вызовет проблемы с производительностью. Вы можете настроить delayed_job только на опрос для заданий каждые 5 или 10 минут или что-то вместо значения по умолчанию, которое, вероятно, намного чаще, что минимизирует влияние на сервер, поскольку это не похоже на критически важную операцию. – Iceman

ответ

1

первого - я думаю, что это хорошая практика, чтобы использовать DJ для всех заданий асинхронных, представьте себе, что мы можем столкнуться с вниз или anyother ошибки с сервером электронной почты и ваш клиент не будет получать эту электронную почту , с DJ, в случае ошибки он повторит работу позже.

2-я - я думаю, что вам не нужен весь сервер для запуска DJ, если у вас нет тяжелых заданий с длительным временем обработки или большого количества заданий в минуту, в описанном выше случае, только немного больше памяти достаточно для решения проблемы.

3rd - Скриншот upstart - это правильный способ сделать это, S.O обработает это и перезапустит сервис, если он придет, драгоценный камень Foreman поможет вам в этом.

Upstart пример: https://larry-price.com/blog/2013/08/31/using-foreman-to-create-an-upstart-service

Увидимся!