Процесс демона Ruby для поддержки объектов для переходных экземпляров Ruby - PullRequest
0 голосов
/ 28 декабря 2011

Предлагает ли Ruby механизм для совместного использования переменных (что более важно, объектов классов и любых других абстракций данных, которые я считаю полезными в этом отношении) между различными запущенными процессами Ruby?

Например, если у меня есть экземпляр класса,инициализированный и тщательно настроенный на определенное состояние, я хочу, чтобы это состояние в некотором роде было доступно всем моим в противном случае независимым запускам Ruby и Irb в течение дня, переживая время жизни процесса, который его первоначально использовал.

OneСценарий, который я сейчас рассматриваю, чтобы эффективно решить , эта проблема состоит в том, чтобы создать скрипт micro Ruby, выполняющий роль хранителя выбранных мной постоянных объектов и переменных в течение дня, и демонизировать его с помощью гема daemons. или аналогичный.Настроить 1-е утро, сносить ночью в конце всех вещей.

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

Должен ли я изучать, как сериализовать сложные объекты на диск?(на самом деле предпочитают оперативную память, а не дисковую, поскольку она в любом случае является временной на какое-то время, и ее воссоздание стоит очень много времени)

Ответы [ 2 ]

1 голос
/ 28 декабря 2011

Реализация Ruby maglev , кажется, идеально подходит для ваших нужд, поскольку она предоставляет постоянные распределенные объекты Ruby.

MagLev VM использует все преимущества GemStone / S JIT для собственного кода производительность, распределенный общий кэш , полностью ACID транзакции и возможности управления данными NoSQL корпоративного класса, чтобы обеспечить надежная и долговечная программная платформа. Он может прозрачно управлять намного большее количество (терабайт) данных и кода, чем уместится память . нет ограничений на типы объектов, классы, блоки, потоки или продолжения, которые могут быть сохранены и выполнены .

Но это может быть немного излишним в зависимости от размера вашего проекта.

1 голос
/ 28 декабря 2011

Возможно, вы ищете что-то вроде memcache ( Gem ) или redis ( Gem ).

Вы также можете быть заинтересованы в объектах redis .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...