问题标签 [consumer]

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 回答
1975 浏览

jms - 如何强制 ActiveMQ 连接为新消费者随机选择代理?

我使用以下 url 来创建 ActiveMQConnactionFactory:

我想做的是从这个代理网络创建多个消息消费者。以下不是真正的代码,但有助于理解我是如何做到的:

问题是所有消费者都将连接到一个随机选择的代理。但我希望他们在经纪人网络上保持平衡。

我相信可以通过与工厂建立多个联系来做到这一点。

但是,最好的做法是什么?这是我想要的好事吗?:)

0 投票
1 回答
78 浏览

multithreading - 跟踪不同线程上对象实例的状态?

我在空闲时间写了一个图像板刮板,主要教我线程。目前我正在使用生产者/消费者类型模式来促进这项工作。但是,我遇到了一个问题。

现在,我有“队列处理器”来观察特定类型的线程安全队列并对其采取行动。这些队列处理器每 X 秒轮询一次目标队列,如果队列中有一个项目等待处理,队列处理器会将该项目从队列中取出,使用该项目启动一个新线程,然后启动该线程。在每个线程上,都会调用长时间运行的方法(例如连接到网站并下载文件)。通过这种方式,每个项目都有自己的线程来运行。

我很难弄清楚如何在每个线程上处理每个项目时报告它的状态。

例如,假设我们有主线程 MT。MT 产生子线程 T1、T2、T3、T4 和 T5。每个线程上都有一个对应的对象,O1...O5。这些对象在其线程上被处理时可以处于三种不同的状态——S1、S2、S3。

当对象O的状态发生变化时,如何将每个对象O的状态S报告给主线程MT?

我尝试使用事件来报告状态,但我遇到了一些不稳定的结果。我用谷歌搜索了一些关于使用线程和事件的信息,但并没有走得太远。

任何帮助,将不胜感激。

谢谢你。

0 投票
1 回答
2033 浏览

jms - ActiveMQ:MessageConsumer 的选择器进程是在代理还是客户端?

有人可以确认我在这方面是对还是错。在我看来,“选择器”操作是在 MessageConsumer 实现中完成的。(即所有消息仍从 Message Broker 分派到 MessageConsumer,然后针对这些消息执行“选择器”操作)。当我们有一堆我们不感兴趣的消息(即不匹配我们的选择器)时,就会出现问题,这些消息最终会由于预取或缓存限制而填满 MessageConsumer 的内部队列。因此,我们将无法接收任何新消息,尤其是我们对选择器感兴趣的消息。

那么,有没有办法配置 AMQ 在 MessageBroker 端执行选择器操作呢?我应该开始查看“拦截器”并创建自己的 BrokerPlugin 吗?有关如何解决此问题的任何建议?

我真的很感激任何答案。

谢谢,Soonthorn A.

0 投票
3 回答
1822 浏览

.net - 多生产者多消费者无锁(甚至无等待)队列

我正在寻找有关如何将 MP/MC 队列编写为无锁甚至无等待的文档。我正在使用.Net 4.0。找了很多C++代码,但是我对内存模型不是很熟悉,所以很有可能在移植到C#的时候会引入一些bug。

0 投票
1 回答
499 浏览

jboss - 在 JBoss 中接收 ActiveMQ 消息时出现问题(每秒消息计数低)

我正在使用远程 ActiveMQ 服务器和消息驱动 Bean(4 个不同的 bean)来使用消息。

理论上消息消费应该很快(过去也很快)。目前 jboss 每 4 秒消耗的消息数量非常慢(大约 4 条)。AMQ Web 界面中的连接面板显示了来自我的 jboss 消费者的两个连接。

有谁知道发生了什么让我的消费者如此缓慢?

编辑:消费者随着时间的推移变得缓慢,并且在重新启动后速度要快得多。奇怪的。

0 投票
1 回答
3783 浏览

python - 尝试在 Pyramid oauth 提供程序中生成请求令牌时出现无效签名错误

我正在尝试oauth2在 Pyramid 应用程序中生成一个请求令牌,以控制对我正在开发的 API 的访问。我一直试图验证我的消费者密钥和秘密工作从这个例子。在 Pyramid request_token 端点上,我有以下内容:

ConsumerKeySecret.getByConsumerKey是一个 SQLAlchemy 模型类方法,它为给定的key和设置实例变量。)secretkey

在消费者方面,再次遵循前面提到的博客文章,我正在执行以下操作:

但是,验证失败,并出现以下错误:

Invalid signature. Expected signature base string: GET&http%3A%2F%2Flocalhost%3A6543%2Fapi%2F01%2Frequest_token&oauth_body_hash%3D2jmj7l5rSw0yVb%252FvlWAYkK%252FYBwk%253D%26oauth_body_hash%3D2jmj7l5rSw0yVb%252FvlWAYkK%252FYBwk%253D%26oauth_consumer_key%3Db9085cb942dc427c92dd%26oauth_consumer_key%3Db9085cb942dc427c92dd%26oauth_nonce%3D42023151%26oauth_nonce%3D42023151%26oauth_signature_method%3DHMAC-SHA1%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1310338562%26oauth_timestamp%3D1310338562%26oauth_version%3D1.0%26oauth_version%3D1.0

然而,我在这里感到困惑,因为每个查询字符串参数在“预期”签名中出现两次。可能出了什么问题?

如果这是一个容易回答的问题,我有一个跟进:一旦我实际验证了请求,我如何生成请求令牌?该oauth2库在有关这一点的文档上有点粗略,并且大多数示例似乎都是针对实现消费者的,而不是创建提供者。

谢谢!

更新 回答我自己的问题,给出我认为的答案。从这个错误报告oauth2看来,自从oauth_body_hash我使用GET. 更改它以POST解决问题。奇怪的是,鉴于我也在使用这个库进行测试,无论如何都会发生这种情况。

为了回答第二部分,我相信您可以生成任何随机且足够长的密钥/秘密对。我见过人们将一些随机源的 sha1 散列分成两个 20 个字符的部分。然后,您可以让我们oauth2.Token自动创建您可以在您的authorize_token步骤中使用的 URL。

当然,如果我在这方面有任何错误,请务必让我知道。

0 投票
1 回答
592 浏览

python - 事件驱动的线程创建

我一直在尝试解决以下问题的各种解决方案;无济于事。

我有大量(python)模块/脚本和一个杰出的脚本 K.py 。

当 K.py 执行时,它会生成一些信息,比如国家名称。现在,在其他模块(数百个)中,将有一些模块可以使用由 K.py 生成的信息(在本例中为国家名称)作为输入传递给它们来执行。递归地,上面的每个模块都会生成一些信息(城镇名称、街道号码等),这些信息可以作为其他模块的输入,等等..这当然会导致执行脚本的二叉树..

需要注意的地方。

  • 上面的模块/脚本(数百个)可以独立运行(它们不会以任何方式相互依赖)
  • 当所有模块都完成执行时,我应该能够做出判断(运行的 K.py 必须阻塞,直到执行模块的触发二叉树被“加入”)。

  • 如果对于每个信息 I 和可运行脚本 S(即 S 可以以 I 作为输入运行),我决定创建一个新的线程,我最终可能会得到指数数量的线程(否?)

如何使用 python 线程(任何 API)“安全地”实现解决方案?(伪代码?)

提前感谢您的智慧。

0 投票
1 回答
161 浏览

python - 当另一个线程使用 Tk 在 Python 中完成时,如何关闭加载屏幕?

我有一个使用 Tkinter 的 Python GUI。我必须通过 SSH 连接到另一个地方才能获取数据。我启动了一个新线程来执行此操作,以便 GUI 不会挂起。在此期间,我想弹出一个屏幕,让用户知道它正在加载。程序完成获取数据后,我想关闭加载屏幕。我必须做什么才能让我的主循环识别线程已完成?我尝试使用该线程关闭主循环中存在的加载屏幕,但后来我发现这不起作用。

我见过一些不使用 GUI 的生产者消费者模型,它们有 while 循环。但这对我没有帮助。我也不想下载和安装其他包,但是导入是可以的。感谢您的帮助!

0 投票
1 回答
886 浏览

java - Producer/consumer pattern in Java

I'm thinking how to implement the producer/consumer pattern in Java.

Assume that I have 3 threads and a List containing tasks (say it's about 5 tasks). Each thread grab the task from the list and execute it concurrently. My current approach is to use CountDownLatch

what I wanted to achieve is that if a thread fails when processing a task, it will be added back to the task list to be picked up again by current or any other thread, but with my current approach using CountDownLatch obviously it is not possible to do so because after doneSignal.countDown() is called, the thread assumes it already have finished the task.

What would be the best approach for this scenario? Is using Executor the only way?

0 投票
3 回答
19260 浏览

rabbitmq - 从rabbitmq断开连接的方法

我有一个有一些错误的应用程序。出于某种原因,当只有一个消费者应该存在时,会创建 2 个消费者 - 并且不再检查其中一个消费者的消息。

我可以通过列出队列和服务器上的消费者数量来检测这种情况。有什么方法可以从服务器端销毁该消费者吗?