LINUX.ORG.RU

rails: хранение состояния


0

1

Страничка контролирует запуск / останов некоторого руби-кода, этот код периодически проверяет своё состояние, если поступил сигнал останова со странички, прерывает свою работу. Система однопользовательская. Как лучше организовать хранение состояния? Какая-либо передача состояния на клиент и обратно не очень нравится, хочется слабой логической связанности исполняемого в цикле кода и наличия клиента, хочется, чтобы эта связь ограничилась тем, что я написал: только сигнал к запуску и только сигнал к останову (там будет конечное количество итераций цикла кода, даже если клиент отвалится, код через некоторое время должен прекратить свою работу).

В голову приходит очевидное: хранить значение состояния в таблице и на каждой итерации цикла читать это значение. Есть более удачное решение?

★★★

Последнее исправление: eRazor (всего исправлений: 1)

Более удачное — это в дополнение к таблице хранить значение в памяти — в мемкэше, например. А к таблице обращаться, только если кэш испарился по какой-то причине. В рельсах есть стандартный механизм для такие вещей.

Apple-ch ★★
()

Кот пишет свой pid при старте в pid-файл.

Страничка при останове читает этот pid и делает kill <<PID>>.

В коде вешаешь свой обработчик на этот сигнал.

Вот образец обработчика для раби

http://www.ruby-doc.org/core-2.1.0/Signal.html

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.