问题标签 [anyevent]

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 投票
1 回答
191 浏览

perl - 是否可以在 EV 回调中的 Perl 中进行类似 longjump 的操作?

我正在尝试在异步环境中模拟同步控制流。

目的是支持没有回调或阻塞请求的数据库请求。

我正在尝试使用该Coro模块,但我认为我不完全理解它。

以下是代码片段:

这是测试代码:

完整的模块和测试脚本在这里DBIx::PgCoroAnyEvent和这里01_sleeps.t

有人可以看看并解释我那里有什么问题吗?

0 投票
1 回答
90 浏览

perl - AnyEvent::STOMP::Client + AnyEvent::ForkManger = 间歇性错误

我正在尝试编写一个进程来侦听 ActiveMQ 并基于消息,出去并从 web 服务中获取数据,进行一些处理,然后将进程数据放到另一个 web 服务中。(REST/JSON)

下面的模块可以正常工作,直到我与之交谈的其中一个不稳定的 Web 服务返回错误。我已经尝试了很多方法来捕获错误但无济于事。尽管我收到以下消息,但一旦发生 Web 服务错误:

未处理的事件回调异常 (MESSAGE, AnyEvent::STOMP::Client=HASH(0x3ad5e48), HASH(0x3a6bbb0) {"action":"created","data":{"id":40578737,"type":" alert","who":null},"guid":"ADCCEE0C-73A7-11E6-8084-74B346D1CA67","hostname":"myserver","pid":48632}): $fork_manager->start() 应该在管理器进程中调用

好的,我从概念上理解子进程正在尝试启动另一个进程,而 fork 管理器说这是不,不。但是鉴于下面的模块,启动新进程以处理长时间运行的处理的正确方法是什么。或者为什么一个子进程死亡导致这个异常,我该如何防止这种情况

这是模块(精简)

下面是上述模块的驱动程序:

最后是一个流量生成器,您可以使用它来查看此操作:

0 投票
0 回答
177 浏览

perl - AnyEvent Fork::Pool vs Worker::Pool

背景

我需要编写一个程序来启动、监视和报告多达数千个 shell 脚本的状态。

我在 AnyEvent 空间中找到了两个模块(AnyEvent::Fork::Pool 和 AnyEvent::Worker::Pool),它们似乎可以完成工作

描述不足以让我理解哪个更适合我的目的。

安装 AnyEvent::Worker::Pool 的初始尝试导致失败(在 CPAN 测试器http://cpantesters.org/cpan/report/10f80e0e-eea4-11e6-9f92-baad96342c9b观察到相同的失败)

我的问题是:

  1. 这两个模块是否有不同的目标受众,或者它们是同一工作的两个单独实现(TIMTOWTDI)
  2. 这两个模块有什么区别?
  3. AnyEvent::Worker::Pool 是否患有 bitrot(最近一次更新近 7 年前)
0 投票
0 回答
111 浏览

perl - 如何停止在 AnyEvent 中读取数据

我一直在使用 Perl 的AnyEvent做一些代理脚本。

我的程序在此设置中充当代理服务器。

AnyEvent::Handle中,如何停止从代理读取数据并在客户端获取数据后恢复?

零件代号:

我最近添加$handle->stop_read了代理on_read事件,但这不起作用。代理始终获取数据。

0 投票
1 回答
146 浏览

perl - 如何使用 AnyEvent::HTTP 仅获取页面的一部分?

只需要读取页面的一部分(n 字节)并关闭连接,如何在 AnyEvent::HTTP 上执行此操作?

0 投票
1 回答
279 浏览

perl - 如何在 AnyEvent::HTTP 中等待 http_request 的完成?

程序从数据库中取出作业并执行AnyEvent::HTTP::http_request,在等待所有请求完成后如何正确退出程序?

也许您知道将作业排队并执行它们的最佳方式,然后在 AnyEvent + AnyEvent::HTTP 中显示您的模板,我使用 AnyEvent 计时器,哪个更好更快?

新版本 :

0 投票
1 回答
94 浏览

perl - 默认情况下如何配置 AnyEvent::DNS 解析器?

默认如何配置resolver ,AnyEvent::DNS我要改max_outstanding,,,。有一个环境变量,但是怎么改呢?reusetimeout$ENV{PERL_ANYEVENT_MAX_OUTSTANDING_DNS}reusetimeout

0 投票
0 回答
81 浏览

perl - 带有 AnyEvent 的 perl 脚本运行速度不够快

这是我创建的小脚本,用于从带有 URL 列表的文件执行 HTTP 事务。问题是它不能像我想要的那样快速地进行 HTTP 事务。更准确地说,我将速率设置为 200/秒,但它只能以大约 50/秒的速度发送。服务器足够强大,可以处理 100/秒。

这是在具有 E5-1650 CPU 和 64GB RAM 运行 Ubuntu 14.04 桌面的强大 PC 上运行的。脚本运行时,CPU使用率只有12%左右。我使用的命令是perl httpStresser.pl urlList rate 200.

知道为什么吗?

0 投票
0 回答
75 浏览

perl - AnyEvent 在某个点后停止尝试建立连接

创建了一个脚本来测试服务器(它能够处理超过 100K 的并发 TCP 套接字)。达到 65536 后,客户端停止尝试建立连接。想知道为什么。

作为记录,我在 Ubuntu 14.04 (linux 3.19.0) 上以 root 身份运行它并ulimit -a显示 100000。

知道为什么吗?

更新1

根据评论进行了一些更新。多谢你们。

  • 当我只使用一个 IP 时,我可以轻松达到 27000 个并发 TCP 连接。端口范围(每个主机)应允许 4 个主机上的 100,000 个连接。
  • 我有fs.nr_open = 1048576但没有 net.ipv4.netfilter.ip_conntrack_max 的配置
  • 最大数字“65536”可能意味着很多东西:1) 主机上的最大端口数 2) 2 字节短整数中的数字数。所以它可能是相关的。想知道我可以在哪里重新定义限制,或者是否可以重新定义它。
  • 当我到达数字 65536 时,它停止尝试创建新连接。
0 投票
1 回答
409 浏览

perl - 如何在加载模块之前定义环境变量?

我使用AnyEvent::DNS模块。

我想禁用 IPv6,以便解析器只请求A记录。

AnyEvent::DNS, 使用环境变量$ENV{PERL_ANYEVENT_PROTOCOLS}

但是设置变量不起作用;解析器仍然发送两个请求A,并且AAAA

代码来自AnyEvent::DNS

如何在加载模块之前定义环境变量?