问题标签 [hypnotoad]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
787 浏览

perl - 为什么我使用 hypnotoad 在 Heroku 上崩溃了?

我正在尝试使用在Heroku上使用Perloku运行的Mojolicious::Lite应用程序来获得催眠蟾蜍。当hypnotoad进入它的运行循环导致它崩溃时,有些事情不会发生。我想我遗漏了一些简单的东西,但是 Heroku 文档没有帮助,我也无法从中获得好的错误信息。

我从一个非常简单的应用程序开始,所以显示一些环境变量:

当我在本地运行它时,我没有问题。我从环境变量中看到我的程序是在 hypnotoad 下运行的:

现在,我使用Mojolicious::Command::deploy::heroku 部署它:

这是在https://frozen-brushlands-4002.herokuapp.com上运行的,使用默认的 Perloku 文件:

尽管我看过一些参考资料说这就是我应该得到的,但这并不是运行催眠蟾蜍。该应用程序有效,但:

我想我可以更改 Perloku 文件来启动 hypnotoad:

hypnotoad 启动并几乎立即关闭,没有其他日志消息:

我可以更改调用以使用-t来测试应用程序以查看是否:

那行得通,我得到“一切看起来都很好!” 消息,所以 hypnotoad 正在运行:

我打开了 Mojo 调试日志记录,但除了我自己的语句之外,我没有看到其他输出。

我尝试了其他事情,例如让它加载一个我知道不存在的模块,并且我在日志中得到预期的“找不到”错误。

从 heroku ( heroku run bash) 中的 shell 运行没有启发性。的输出与mojo version我的本地机器上的相同:

我认为我缺少一些非常简单的东西,但与此同时,这些都不是为了便于调试而设计的。


奥列格离得更近了一点,但仍然存在问题。我之前尝试过前台选项并遇到同样的问题,但没有提及。

如果我在前台启动 hypnotoad,它会尝试绑定到一个地址。它无法绑定到端口 80(或 443)并崩溃,它可以监听 127.0.0.1: 几乎,但看起来它无法完全监听:

这是一个非特权端口:

0 投票
3 回答
309 浏览

perl - 与 DB 的 Mojolicious 连接偶尔会崩溃

我运行一个高效的应用程序来管理我们研究小组的出版物。该应用程序是用 perl 的 mojolicious 框架编写的。我使用 sqlite3 作为数据库,使用 Hypnotoad 作为应用服务器。

我的问题是与数据库的连接偶尔会崩溃(每周 2 次)而没有给出合理的错误消息。唯一有帮助的是重新启动 Hypnotoad。任何想法为什么会发生这种情况?

错误消息示例:

那里的代码如下所示:

dbh 变量由助手返回:

完整代码可在此处获得: https ://bitbucket.org/vikin9/hex64publicationlistmanager/src

0 投票
3 回答
1482 浏览

perl - 如何使用 hypnotoad 或 morbo 调用交互式 Perl 调试?

我是 mojolicious 的新手,但使用 Perl 已经有一段时间了。我必须跳过一些障碍,但我可以让交互式 Perl 调试器(和 Komodo)与 Apache 的远程连接一起工作,但我找不到任何关于使用 hypnotoad 或 morbo 进行交互式调试的信息。

http://mojolicio.us/perldoc/Mojolicious/Guides/Tutorial#Hello-World上的基本教程中的命令行示例可以正常工作,因为您可以使用 perl -d 启动它们,但无论如何我看不到告诉用于将服务置于交互式调试模式 ala apache 的 hypnotoadctl 脚本。

这不可能吗?提示?提示?指针?

0 投票
0 回答
210 浏览

postgresql - 在 hypnotoad 下使用 Mojo::Pg::Pubsub

我在 Pg 数据库中有一个带有令牌的表,并且为了不使用永久 SELECT 使数据库过载,我决定在我的应用程序中使用几个简单的 mojo 助手(用于检查令牌是否有效、删除令牌并将其添加到此类缓存)将令牌缓存在 RAM 中。

我正在使用 Mojo::Pg::Pubsub 和 Pg 通知系统(我有一个通知令牌插入/删除的触发器)来捕获数据库中删除/创建令牌的事件。所有工作人员都在他们的 ioloops 中安排了子程序,以对数据库中无效的令牌执行 SQL DELETE。使用 Pg 通知机制,我需要得到这样一种情况,即所有 hypnotoad 工作人员将在内存中拥有相同的令牌池,因为他们都通知了任何更改。

但是有一个问题,只有 1 个催眠蟾蜍工人(从池中随机一个,每次不同的一个)捕捉到这个事件。我知道 Mojo::Pg 对象可能会在工人分叉时变得重复。我还发现 Mojo::Server::Prefork 包含在 mojo 应用程序引擎盖下的某处,它具有并发出名为“spawn”的事件,该事件在诸如

我认为我可以接受的解决方案是订阅此事件并为每个新的分叉工作人员重新创建 Mojo::Pg 对象,但我找不到访问服务器对象以订阅此事件的方式。

我该怎么做?或者也许我只是做错了什么,还有其他方法可以解决上述问题?

这是我的 mojo 应用程序中用于使用 DB 的代码:

这是负责从 Pg 捕获通知的代码:

0 投票
1 回答
145 浏览

supervisord - 如何告诉主管不需要停止程序?

Perl Mojo Hypnotoad 服务器具有热重启功能。要更新程序,您只需再次启动 Hypnotoad,它最终会替换所有正在运行的副本。

如何告诉主管在重新启动服务器时不需要停止我的服务器?

0 投票
1 回答
163 浏览

perl - 如何定义 Mojo::Server::Prefork 的生成处理程序?

我有一个简单的 web 应用程序,用 perl/Mojolicious 编写,并在 hypnotoad 下运行。

我需要为“spawn”事件(由 Mojo::Server::Prefork 发出)定义一些处理程序。

但我不知道,如何在 Mojolicious 应用程序的启动方法代码中插入这个处理程序定义。$self->on("spawn"=>sub {})不起作用:(而且Dumper($self)根本没有帮助:没有 $self->server 或 $server->prefork ...

请告诉我,怎么做。

谢谢!

0 投票
0 回答
86 浏览

perl - Hypnotoad 和主命名空间

如何处理 Hypnotoad 下的主命名空间?

我有这个小服务器:

...和这个模块:

模块中的子程序尝试调用主命名空间中的子程序;

这在标准 mojo 服务器下工作正常。但不是在催眠蟾蜍下:

put: [Tue May 30 14:20:37 2017] [error] Undefined subroutine &main::hello call at extmod.pm line 8.

它是一个功能吗?如何查看模块中的全局命名空间?

0 投票
1 回答
31 浏览

perl - 选择特定的工作人员进行连接

所以,我正在为我的应用程序使用一个 hypnotoad 服务器,并试图维护连接状态。事实证明,每个连接都会产生/选择不同的工作人员。我可以以某种方式使这个选择明确吗?还有一种方法可以知道我的最后一个请求使用了哪个工作人员并再次将其用于相应的请求?

0 投票
2 回答
342 浏览

perl - 如何退出在 Morbo 或 Hypnotoad 服务器下运行的程序

在 Morbo(和 Hypnotoad)服务器下运行的程序中,调用 会exit()被静默忽略,并有效地作为回调的返回。END 块通常会触发,但程序本身永远不会退出。


0 投票
0 回答
203 浏览

perl - Mojolicious Hypnotoad Nginx 反向代理无法从浏览器访问

应用程序正在服务器中运行。但它无法从浏览器访问。

示例配置文件——

nginx版本:nginx/1.10.3

Ubuntu 16.04.3 LTS