Остановки перезагрузки класса после неперехваченного исключения в пользовательском промежуточном программном обеспечении

Я записал свое собственное промежуточное программное обеспечение для обеспечения конечной точки API нашему приложению. Промежуточное программное обеспечение загружает классы, которые предоставляют методы API, и направляет запрос к соответствующему классу/методу. Классы загружаются динамично через String#constantize.

При выполнении в режиме разработки классы автоматически перезагружаются. Однако, если существует неперехваченное исключение – который впоследствии обрабатывается Отказоустойчивым промежуточным программным обеспечением – автоматическая перезагрузка прекращает работать. constantize все еще называется, но это, кажется, возвращает старый класс.

Казалось бы, что существует что-то еще, что разгружает классы, и неперехваченное исключение повреждает его. Каково это могло быть?

Рабочий Ruby 1.8.7, направляющие 2.3.3 и тонкие 1.2.2.

10
задан Mark Wubben 27 August 2009 в 09:12
поделиться