问题标签 [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 回答
405 浏览

c#-4.0 - 使用 BlockingCollection 时从消费者任务向生产者任务发送信号

我有一个非常基本的应用程序,它使用生产者任务和消费者任务来处理文件。它基于此处的示例http://msdn.microsoft.com/en-us/library/dd267312.aspx

该程序的基础是 Producer 任务枚举我硬盘上的文件并计算它们的哈希值并执行其他一些操作。一旦 Producer 处理完一个文件,它就会 Enques 文件,然后 Consumer 抓取它。

Consumer 任务必须连接到远程服务器并尝试上传文件。但是,如果消费者遇到错误,例如无法连接到远程服务器,我需要它向生产者任务发出信号,告知它应该停止正在做的事情并终止。如果服务器宕机或宕机,生产者无需继续循环浏览数千个文件。

我已经看到大量通过在 BlockingCollection 对象上使用 .CompleteAdding() 从 Producer 任务向 Consumer 任务发出信号的示例,但我不知道如何从 Consumer 向 Producer 发送信号,表明它应该停止生产。

0 投票
1 回答
141 浏览

activemq - 在 ActiveMQ 中,消息被消费者接收但确认是由其他进程发送的?

在 ActiveMQ 中,我向消费者发送消息,然后消费者将消息转发给不同的进程。我想知道是否有任何方法可以将确认从其他进程发送到代理?

我尝试使用套接字连接将消息对象发送到另一个进程,然后在其上调用确认()方法,它不起作用。

我尝试将消息发送到其他一些类对象(在同一个 JAVA 进程中),然后调用确认()方法,它起作用了。

0 投票
1 回答
835 浏览

c - 生产者/消费者线程无法使用 pthread 进行 DNS 查找

我正在使用生产者/消费者问题来制作多线程 DNS 解析器。我在没有多线程的情况下解决了它,所以我很确定我的那部分代码可以工作。基本上,我正在创建一个生产者来编写,并且(将创建)许多消费者来阅读。目前,我正在从一个包含 IP 地址的文件中读取。我不知道为什么我的生产者线程没有运行;在让我的消费者运行之前,我需要弄清楚这是怎么回事。任何帮助都感激不尽。

这是我的代码(到目前为止):

编辑:我修复了一些代码,我认为它应该可以工作。但是,它仍然没有。

我没有看到任何工作。有什么建议么?

当我调试它时,我不断收到段错误。我不知道他们为什么或从哪里来;我是 pthreads 的新手,所以我可能错过了一些东西,但对我来说它看起来应该可以工作。

0 投票
1 回答
413 浏览

message-queue - ActiveMQ 中消费者的确认

我想在消息被 yahoo 之类的处理引擎处理后确认消息!S4。我只能使用适配器将消息发送到引擎。

目前我将每条消息存储在适配器中,直到处理引擎返回消息的 JMScorrelationID,告诉我消息已被处理。但这会占用 Adapter 上的大量空间来存储每条消息。

那么有什么方法可以让我们使用 JMScorrelationID 手动创建确认并将其发送给代理?

0 投票
0 回答
175 浏览

spring - 使用 Spring 使用来自主题的消息?

我想知道使用 Spring订阅主题的正确方法是什么。

我尝试使用DefaultMessageListenerContainer, 使用非持久订阅,但大多数时候都失败了。有一个开放的错误 ( SPR-7833 ) 似乎指出它不适用于非持久主题订阅。

是否有任何替代 DMLC 支持在发生故障时自动重新连接的方法?

顺便说一句,我正在以编程方式创建 DMLC,使用故障转移传输连接到嵌入式 ActiveMQ 5.5.1 代理以进行自动重新连接。即使在最奇怪的情况下,使用队列中的消息也可以按预期工作,但主题却没有运气。

0 投票
3 回答
7441 浏览

java - java并发:多生产者一消费者

我有一种情况,不同的线程填充一个队列(生产者),一个消费者从这个队列中检索元素。我的问题是,当从队列中检索其中一个元素时,会丢失一些元素(丢失信号?)。生产者代码是:

它们是通过以下方式创建和运行的:

消费者代码是:

运行代码时,有时会添加 20 个元素并检索 20 个元素,但在其他情况下检索的元素少于 20 个。知道如何解决这个问题吗?

0 投票
1 回答
292 浏览

android - 检测受损的 oauth 消费者密钥/秘密?

我正在使用 oauth 开发一个利用 google 服务的 android 应用程序。我想知道是否有任何方法可以检测我的消费者密钥/秘密是否已被泄露,以便我可以在需要时采取行动?

0 投票
1 回答
542 浏览

java - 生产者/消费者线程不给出结果

我正在为我的操作系统课程做一个 CPU 调度模拟器项目。该程序应由两个线程组成:生产者线程和消费者线程。生产者线程包括在系统中生成进程的生成器和选择多个进程并将它们放入ReadyQueue 类型的称为Buffer 的对象(消费者和生产者共享对象)中的长期调度程序。消费者线程包括短期调度程序,它从队列中获取进程并启动调度算法。我在不使用线程的情况下编写了整个程序并且它工作正常,但现在我需要添加线程并且我从未使用过线程,所以如果有人能告诉我如何修改我在下面显示的代码以实现所需的线程,我将不胜感激。

这是 Producer 类的实现:

这是 Consumer 类的实现:

这是主线程:

先感谢您。

0 投票
1 回答
50 浏览

jms - 哪个客户端从队列中接收消息

如果我有一个消息队列和多个独立程序,它们尝试通过以下方式从该队列接收消息

哪个客户端程序实际上会收到消息?这是怎么决定的?谢谢你

0 投票
0 回答
796 浏览

c# - 当生产者也是消费者时,如何在生产者/消费者模式中使用阻塞集合 - 我该如何结束?

我有一个递归问题,消费者在树的每一层都做了一些工作,然后需要沿着树递归并在下一层执行相同的工作。

我想使用 ConcurrentBag/BlockingCollection 等来并行运行它。在这种情况下,队列的消费者,也是队列的生产者!

我的问题是这样的:使用 BlockingCollection,我可以编写非常简单的 foreach 逻辑来使项目出队,并将新项目排队 - 当队列为空时,阻塞集合将正确阻塞,并等待另一个产生新工作消费者。

但是我怎么知道是否所有的消费者都在阻止?!

我知道 CompleteAdding(),但这似乎没有用,因为你真正完成的唯一时间是所有生产者都完成生产并且队列为空 - 因为它们都会阻塞,所以没有人“ free" 来设置 CompleteAdding()。有没有办法检测到这一点?(也许一个事件可以在阻塞时触发,并在解除阻塞时再次触发?)

我可以手动处理这个问题,不使用 foreach,而是手动使用 while(!complete) 循环,并使用 TryTake,但是我需要手动休眠,这似乎效率低下(拥有阻塞集合的全部原因与只是首先是并发集合!)每次通过循环,如果 TryTake 为 false,我可以设置一个 Idle 标志,然后让 Master 检查队列是否为空,并且所有线程都处于空闲状态,设置一个完整标志,但是,这似乎很笨拙。

直觉告诉我有一些方法可以使用阻塞收集来做到这一点,但我无法做到。

无论如何,当消费者是生产者并且能够检测到何时释放所有块时,任何人都有一个很好的模式会很棒