Ruby Daemons и JRuby - альтернативные варианты - PullRequest
5 голосов
/ 18 марта 2011

У меня есть приложение, которое я перевожу с Ruby на JRuby (из-за необходимости лучшей поддержки Web Service Security через Java). Одним из драгоценных камней, которые я использую, является daemons для создания фонового задания.

Проблема в том, что он использует fork + exec для создания фонового процесса, но с JRuby это нет.

Итак, есть ли альтернативный гем / оболочка для создания фоновых заданий?

Мои нынешние мысли состоят в том, чтобы просто вызвать rake из сценария оболочки и позволить задаче rake работать вечно ...

Заранее спасибо, Крис.

UPDATE В настоящее время мы используем несколько оболочек, связанных с потоками Java, а именно https://github.com/jmettraux/rufus-scheduler и https://github.com/philostler/acts_as_executor

Ответы [ 4 ]

3 голосов
/ 15 февраля 2012

Существует альтернатива под названием «Ложка», написанная Чарльзом Наттером. См. Его блог http://blog.headius.com/2009/05/fork-and-exec-on-jvm-jruby-to-rescue.html и суть https://gist.github.com/321084 для примера.

3 голосов
/ 08 апреля 2011

Поскольку вы не можете разветвляться в JRuby, вам по сути остается необходимость в рефакторинге кода своего демона, чтобы демон мог выполняться как стандартное приложение переднего плана, а затем создать отдельный модуль запуска демона, который будет запускать и задавать фон демону. Вы можете посмотреть на spoon , а также проверить этот gist , который использует ложку для создания более сложной программы запуска. Также jruby-jsvc предоставляет клей для использования jsvc с демоном JRuby.

3 голосов
/ 18 марта 2011

Вас может заинтересовать http://torquebox.org/, включая планирование.

2 голосов
/ 13 сентября 2011

Я создал гем для легкого создания демонов Ruby & JRuby: raad (Ruby как демон). Он работает аналогично MRI Ruby или JRuby, простой, легкий, прозрачный.

...