Вращение фоновых задач в направляющих

ForUpdate должен быть StatementExpressionList, то есть список StatementExpression с.

i+2 является выражением, но не выражением оператора.

Выражения операторов можно неофициально (*) рассматривать как выражения, которые могут иметь побочный эффект, и, таким образом, для них имеет смысл оставаться в выражении самостоятельно i+2 не имеет побочного эффекта, поэтому нет смысла оценивать его.


(*) Неофициально, потому что method1() + method2() может иметь побочный эффект, потому что methodN() может иметь побочный эффект; и тем не менее, это не выражение выражения, потому что «основное» выражение здесь - сложение - само по себе не имеет побочных эффектов.

Вы могли бы написать это как for (;; method1(), method2()) { ... } (без добавления), если это было то, что вы хотели в вашем ForUpdate.

12
задан Derek P. 23 December 2008 в 03:03
поделиться

8 ответов

Ryan Bates создал три больших скринкаста, которые могли бы действительно помочь Вам:

  1. Загребайте фон
  2. Starling и Workling
  3. Пользовательский демон

Он говорит о различных за и против для использования каждого. Это должно помочь Вам начать.

21
ответ дан 2 December 2019 в 04:53
поделиться

Это зависит от Ваших потребностей.

Испытайте delayed_job, который был создан Tobi delayed_job (последнее обновление 2011), основатель Shopify.

Существуют ветвления DHH deleayed_job (последнее обновление 2008), и collectiveidea delayed_job (последнее обновление 20 дней назад с 28.06.2018).

5
ответ дан 2 December 2019 в 04:53
поделиться

Я обычно полагаюсь на cronjob, планирующий, поскольку он дает гибкость, не имея необходимость писать отдельный код для планирования его. Что-либо, что может быть выполнено от оболочки, может быть запланировано! Будьте этим любой сценарий (рубин / задача граблей / py / удар / любой другой, которого Вы любите), cronjob планирование может быть легко достигнут.

При работе окон можно использовать запланированные задачи

Надеюсь, это поможет.

3
ответ дан 2 December 2019 в 04:53
поделиться

async_observer является лучшим. Это не делает всех видов немого материала активного ожидания или теряет задания на катастрофических отказах рабочего как скворец, никакой опрос DB, и т.д...., и это интегрируется в направляющие замечательно хорошо.

Я продвигаю тонны заданий через него, и это в значительной степени не заботится.

1
ответ дан 2 December 2019 в 04:53
поделиться

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

Просто добавьте задание крона, которое выполняется

"CD/path/to/rails/app; RAILS_ENV=production обстреливают run:my:task"

Почему изобретают велосипед, когда Unix как операционные системы был выполняющимися задачами в расписании в течение многих десятилетий?

1
ответ дан 2 December 2019 в 04:53
поделиться

Я использовал плагин демонов в прошлом.

0
ответ дан 2 December 2019 в 04:53
поделиться

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

0
ответ дан 2 December 2019 в 04:53
поделиться

Взгляните на Taskr. Это в основном похоже на крон, но с УСПОКОИТЕЛЬНЫМ веб-интерфейсом. Можно использовать его для планирования задач периодически соединиться с приложением для направляющих и инициировать произвольный код (через плагин Taskr4rails). Это предназначено для установки приятно системе, созданной вокруг УСПОКОИТЕЛЬНЫХ сервисов, плюс он может уведомить Вас, если задача возвращает ошибку, не удается работать и т.д.

0
ответ дан 2 December 2019 в 04:53
поделиться
Другие вопросы по тегам:

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