【问题标题】:Intermittent errors with new code release to existing Mojolicious app将新代码发布到现有 Mojolicious 应用程序时出现间歇性错误
【发布时间】:2015-05-19 06:00:53
【问题描述】:

我在使用现有 Mojolicous 应用时遇到问题。我添加了一些新的路由、视图、控制器和模型,并且正在返回数据库结果以使用 Rose::DB::Object ORM 查看。

我今天使用在 Morbo 上运行良好的代码更新了生产版本。但是,在 apache2/plack/psgi mod_perl 配置中,新模型只返回大约五分之一的查询,有时是十分之一的查询。

我已经消除了一些变量,比如我可以直接查询数据库并且得到我的结果没有问题。旧模型及其查询始终有效。

似乎只有这个新功能是间歇性的。我已将请求范围缩小到一台服务器并重新启动了 apache。但是,现在我不明白为什么问题仍然存在。

我认为这是某种 mod_perl 不稳定的行为,但不知道为什么 apache 重启不能解决它。

任何帮助或想法都会很棒。

【问题讨论】:

  • 日志中有错误信息吗?
  • 我在日志中得到的错误是在视图中。我收到一个变量未导入错误(变量“$tag”未导入)。这真的很奇怪,因为即使在控制器中填充该变量的查询返回为空,它仍然会被导入。所以,我认为有旧代码可以回答这些请求。但是,我不知道如何找到并解决它。
  • 对此进行更新。我在控制器中放了一个骰子,重新启动了 apache,并注意到它间歇性地显示在日志中。

标签: apache perl mod-perl mojolicious psgi


【解决方案1】:

我终于解决了这个问题,结果很简单。我的主应用程序脚本中缺少控制器的 use 语句。我设置路线的脚本。我不确定我是否理解为什么它在生产中间歇性地工作并且一直在开发中工作。但是,一旦我添加:

使用 TheApp::Controller::Tags;在主应用程序 pm 中它始终如一地工作。

回想起来,我觉得我应该早点弄清楚,但它在部分时间起作用的事实让我走上了错误的道路。希望这会在某个时候对其他人有所帮助。

【讨论】:

    猜你喜欢
    • 2022-07-13
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 2018-10-24
    • 2021-09-20
    • 2016-02-03
    • 2015-07-19
    相关资源
    最近更新 更多