Синатра - завершить работу сервера из запроса
Я хочу иметь возможность завершить приложение Sinatra по запросу, например, по следующему маршруту:
post '/terminate' do
Thread.current.kill
end
Реализация этого, как это немного круто. Я предпочел бы, чтобы запрос был выполнен, вернул сообщение HTTP OK, а затем Синатра грациозно выключился.
Есть ли крюк для этого?
Редактировать:
Мое приложение представляет собой облегченный макет-сервер, используемый для получения уведомлений о веб-крюках. Я буду использовать несколько серверов, подобных этому, на одной машине (разные порты), поэтому нужно избегать любых глобальных методов запуска / остановки.
Мое требование основано на том факте, что каждый сервер должен работать в своем собственном экземпляре Ruby, поэтому между моими тестами и сервером нет никакой связи, кроме как через интерфейс REST.
Я использую по умолчаниюthin
Сервер для запуска Синатры. Пока что мой код - это просто подкласс Sinatra :: Base, который начал использоватьrun!
из кода. Это красиво и просто, я могу создавать автономные скрипты для создания экземпляров каждого сервера, мне просто нужен способ их остановить.