问题标签 [subscriber]

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 投票
2 回答
3540 浏览

python - ROS Image 订阅者延迟

我在收听图像消息的 rospy 订阅者方面遇到了一些滞后问题。

概述:

我有一个 rosbag 以 5Hz 将图像流式传输到 /camera/image_raw。我还有一个 image_view 节点,用于显示图像以供参考。此 image_view 以 5Hz 显示它们。

在我的 rospy 订阅者(使用 queue = 1 初始化)中,我还显示了图像(用于将延迟时间与 image_view 节点进行比较)。订户随后进行一些繁重的处理。

预期结果:

由于队列大小为 1,订阅者应处理最新的帧,同时跳过所有其他帧。一旦它完成处理,它就应该移动到下一个最新的帧。不应有旧帧排队。这将导致视频断断续续,但不会滞后(如果有意义的话,fps 低,但不会“延迟”wrt rosbag 流)

实际结果:

订阅者落后于发布的流。具体来说,image_view 节点以 5Hz 的频率显示图像,订阅者似乎将所有图像排队并一一处理,而不是仅仅抓取最新的图像。延迟也会随着时间的推移而增加。当我停止 rosbag 流时,订阅者继续处理队列中的图像(即使 queue = 1)。

请注意,如果我将订阅者更改为具有非常大的缓冲区大小,如下所示,则会产生预期的行为:

但是,这不是一个干净的解决方案。

在以下链接中也报告了此问题,我在其中找到了缓冲区大小解决方案。官方解释假设发布者实际上可能正在放慢速度,但事实并非如此,因为 image_view 订阅者以 5Hz 显示图像。

https://github.com/ros/ros_comm/issues/536,Ros订阅者不是最新的,http ://answers.ros.org/question/50112/unexpected-delay-in-rospy-subscriber/

任何帮助表示赞赏。谢谢!

代码:

0 投票
5 回答
3231 浏览

multithreading - Rxjava:订阅特定线程

我是 Rxjava 的新手。我有以下代码:

例如,输出将是:

1:50
2:100
3:100

我希望订阅者在 id 为 50 的线程上运行。我该怎么做?

0 投票
1 回答
151 浏览

scala - 如何手动更新 observable?

我是 reactivex 和rxscala的新手,可以创建Observable这样的:

我可以将新字符串subscriber放入Observable.apply.

observable外面可以更新吗?我的意思是,有没有类似的方法putNext

让我把新东西放到现有的 observable 上?

0 投票
1 回答
7204 浏览

android - 为什么在 Android doOnError() 上使用 Retrofit 的 RxJava 不起作用但订阅者 onError 可以

有人可以解释一下为什么这样的代码:

如果没有互联网进入 doOnError 但进一步抛出它,因此应用程序关闭,但代码如下:

按照我的预期工作,这意味着当没有互联网连接时,它什么也不做。

0 投票
0 回答
828 浏览

publish-subscribe - 运行 Messenger 示例中的 OpenDDS 错误

编辑:我已从 DCPSInfoRepo 切换到 RTPS,一切正常。我不知道这个问题是否应该保持开放,以便为使用 DCPSInfoRepo 的任何人回答问题


我正在研究使用 OpenDDS,我目前正在遵循 Windows 的“入门”指南。我达到了使用命令运行 Messenger 示例的步骤

我得到以下输出,我认为这是一个错误。

我可以就如何解决这个问题获得一些指导吗?

0 投票
3 回答
13619 浏览

android - 如何在 Android RxJava Observable 中按顺序运行 2 个查询?

我想运行 2 个异步任务,一个接着另一个(按顺序)。我读过一些关于 ZIP 或 Flat 的东西,但我不太了解它......

我的目的是从本地 SQLite 加载数据,完成后,它将查询调用到服务器(远程)。

有人可以建议我,实现这一目标的方法吗?

这是我正在使用的 RxJava Observable 框架(单个任务):

0 投票
1 回答
64 浏览

php - PHP 电子邮件列表订阅者脚本

为什么这个脚本不起作用?我只想将一封包含订阅者电子邮件的电子邮件发送到 hello@weblabcompany.com,以便稍后与他们联系

0 投票
1 回答
262 浏览

android - 一段时间后,Observable 似乎没有调用 onNext

我正在使用 RxAndroid 库来处理使用订阅者/可观察模式的项目列表。我的问题是,当一个项目被处理时,有一个需要更新的进度条。但是在处理了 16 个项目之后,似乎 observable 没有调用 onNext 方法,直到处理完其余的项目(90)然后调用了 90 次 onNext 方法。为什么会这样?这可能是内存问题吗?

代码如下。

订户:

可观察的:

识别方法确实很难处理图像,我的第一个想法是这种方法会消耗大量内存,并且在所有方法调用完成之前,observable 无法将处理过的项目交付给订阅者。但我不确定,有人可以证实这一点吗?

谢谢!

0 投票
1 回答
722 浏览

mule - 如何设置 Mule Publisher Subscriber 模型

如何使用 ActiveMQ 设置 Mule Publisher Subscriber 模型?我一直在网上寻找一个简单易懂但无法理解的完整示例。我要做的就是向 MQ 主题发送一个字符串(使用发布者),然后从主题中读取消息(使用订阅者)。没有什么太复杂

0 投票
1 回答
353 浏览

asynchronous - 如何暂停消息队列

简化:
我在activemq中有一个队列。当从队列中读取某条消息时,我想锁定队列,直到该进程结束处理接收到的消息。

详细解释:
我有一个拥有大量用户的系统。每次用户更改他在系统中的状态(配置文件、角色、访问权限、资产所有权等)时,我还需要使用这些更改更新第三方服务器。该第三方与我们是分开的,他们向我公开的 api 允许我一次只更新一个用户,大约需要一秒钟。
我正在使用 ActiveMQ 将主更新过程与更新第三方系统分离。

每晚一次,我会收到一个可能包含数千个用户更改的提要文件。由于这是一项关键任务,并且更新第三方对时间不那么敏感,并且由于更新第三方可能需要从同一个表中读取,所以主进程是批量更新,我需要锁定队列。意思是,我希望 ActiveMQ 为我在主进程中更改的每个用户获取消息,但我也希望 ActiveMQ 保留这些消息,直到主进程完成。

ActiveMQ 中的任何内置机制可以做到这一点吗?