Периодические ошибки с новым выпуском кода для существующего приложения Mojolicious

У меня проблема с существующим приложением Mojolicous. Я добавил несколько новых маршрутов, представлений, контроллеров и моделей и возвращаю результаты базы данных для просмотра с помощью Rose::DB::Object ORM.

Сегодня я обновил производственную версию кодом, который отлично работал на Morbo. Но в конфигурации apache2/plack/psgi mod_perl новые модели возвращают запросы примерно 1 из 5, иногда 1 из 10 раз.

Я исключил ряд переменных, например, я могу напрямую запрашивать базу данных и без проблем получать результаты. Старые модели и их запросы всегда работают.

Похоже, что только эта новая функциональность является прерывистой. Я сузил запросы только к одному серверу и перезапустил apache. Но сейчас я не понимаю, почему проблема сохраняется.

Я думаю, что это какое-то странное поведение mod_perl, но не знаю, почему перезапуск apache не исправляет это.

Любая помощь или идеи были бы потрясающими.


person dudeman    schedule 16.03.2015    source источник
comment
Есть ли в логах сообщения об ошибках?   -  person alexk    schedule 17.03.2015
comment
Ошибка, которую я получаю в журналах, связана с представлением. Я получаю сообщение о том, что переменная не импортирована (переменная $tag не импортирована). Что действительно странно, потому что даже если запрос, который заполняет эту переменную в контроллере, возвращается пустым, он все равно будет импортирован. Итак, я думаю, что есть старый код, отвечающий на эти запросы. Но я не знаю, как это найти и исправить.   -  person dudeman    schedule 17.03.2015
comment
Обновление по этому поводу. Я поставил кубик в контроллере, перезапустил apache и заметил, что он периодически появляется в журналах.   -  person dudeman    schedule 17.03.2015


Ответы (1)


Я наконец решил это, и это оказалось чем-то простым. Мне не хватало оператора использования для моего контроллера в моем основном сценарии приложения. Скрипт, в котором я настраиваю маршруты. Я не уверен, что понимаю, почему он работал с перерывами в производстве и все время работал в разработке. Но однажды я добавил:

используйте TheApp::Controller::Tags; в основном приложении pm он работал стабильно.

Оглядываясь назад, мне кажется, что я должен был понять это раньше, но тот факт, что это работало часть времени, увел меня по ложному пути. Надеюсь, это когда-нибудь поможет кому-то другому.

person dudeman    schedule 17.03.2015