标签: message-queue

ActiveMQ消息分组性能

有人在ActiveMQ中使用过消息分组功能吗?

http://activemq.apache.org/message-groups.html

对于我正在研究的项目来说,这将是一个非常有用的功能,但我很好奇这个功能如何扩展和执行.在我们的系统中,我们需要将消息分组为大约3-5条消息,因此我们将在进程运行时不断添加组.在这种情况下,似乎我们最终只是试图存储所有组的内存不足.

我对任何经历/想法/优点/缺点感兴趣.

messaging activemq-classic jms message-queue

5
推荐指数
1
解决办法
2570
查看次数

MassTransit队列维护

MassTransit中是否有可以帮助管理队列的内容?

我特意想到错误队列.我看到类似于此的线程,但我不打算用实用程序来管理它,而是在代码中.

场景:

  • Web客户端 - 将命令作为消息发布到应用程序服务器上的远程队列.

  • 应用程序服务器 - 命令被使用和执行.如果命令在执行期间抛出,则将其置于错误队列中.

  • Web客户端 - 最终用户可以查看错误队列中的所有命令.他们一次解决一个并将它们重新发布以便再次执行.

前两个很容易.第三个是我现在所处的位置.任何建议都非常感谢.

谢谢,
罗布

messaging masstransit message-queue servicebus

5
推荐指数
1
解决办法
1677
查看次数

在RabbitMQ重新开始血汗工厂的工作

我正在开发一个Rails应用程序,客户退款将交给Sweatshop工作人员.如果退款失败(因为我们当时无法联系到付款处理商),我想重新排队.

class RefundWorker < Sweatshop::Worker

def process_refund(job)
  if refund
    Transaction.find(job[:transaction]).update_attributes(:status => 'completed')
  else
    sleep 3
    RefundWorker.async_process_refund(job)   # requeue the job
  end
end
Run Code Online (Sandbox Code Playgroud)

有没有比上面更好的方法呢?我还没有在RabbitMQ中找到任何"延迟"功能,这是迄今为止我提出的最佳解决方案.我想在重新排队时避免繁忙的循环.

ruby ruby-on-rails message-queue rabbitmq

5
推荐指数
1
解决办法
1249
查看次数

Apache qpid队列网址

我正在尝试了解有关apache Qpid如何工作的更多信息,我通过以下官方svn中的示例来实现:

http://svn.apache.org/repos/asf

我在看:

http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/Hello.java

哪个使用此配置/属性文件:

http://svn.apache.org/repos/asf/qpid/trunk/qpid/java/client/example/src/main/java/org/apache/qpid/example/hello.properties

有人可以告诉我配置中的这一行代表什么:

connectionfactory.qpidConnectionfactory = amqp://guest:guest@clientid/test?brokerlist='tcp://localhost:5672
Run Code Online (Sandbox Code Playgroud)

一世.我假设guest:guest是连接到qpid时使用的凭据

II.我假设localhost和5672应该是hostname:port

我的问题是什么test?代表?是队列的名称还是它的名称?是否可以直接在此amqp url中指定队列名称?

java messaging jms message-queue amqp

5
推荐指数
1
解决办法
2973
查看次数

如何捕获在执行一系列Celery任务期间生成的所有python日志记录?

我想将我自己开发的任务队列系统转换为基于Celery的任务队列,但我目前拥有的一个功能让我有些困扰.

现在,我的任务队列操作非常粗糙; 我运行该作业(生成数据并将其上传到另一台服务器),使用Nose日志捕获库中的变量收集日志记录,然后将该任务的日志记录存储为应用程序数据库中的详细结果记录.

我想把它分解为三个任务:

  1. 收集数据
  2. 上传数据
  3. 报告结果(包括前两个任务的所有日志记录)

这里真正的踢球者是日志记录集合.现在,使用日志捕获,我在数据生成和上载过程中为每个日志调用提供了一系列日志记录.这些是诊断目的所必需的.鉴于任务甚至不能保证在同一个进程中运行,我不清楚如何在Celery任务队列中完成此任务.

我对这个问题的理想解决方案将是一个简单且理想的微创方法,在前任任务(1,2)中捕获所有日志记录并使其可用于报告任务(3)

我最好还是保持相当粗糙的任务定义,并将所有这些工作放在一个任务中?或者有没有办法传递现有的捕获日志记录,以便在最后收集它?

python logging message-queue task celery

5
推荐指数
1
解决办法
1021
查看次数

提升消息队列

我有以下boost :: interprocess :: message_queue相关问题.

按照预期,我计划在> = 2个进程之间共享一个消息队列.显然,其中一个可能在消息队列中崩溃.因此,它将保留内部锁,使其他进程无法访问队列.怎么解决这个问题?似乎没有办法解锁使用的内部互斥锁.

boost message-queue boost-interprocess

5
推荐指数
1
解决办法
1092
查看次数

我在哪里可以在Android的消息队列中找到待处理消息?

有没有办法找出消息队列大小以及每条消息中包含什么项目?是Looper.getMainLoop什么吗?

android message-queue

5
推荐指数
1
解决办法
4210
查看次数

AnyEvent :: RabbitMQ问题与封闭渠道有关

我正在编写一个用于将消息发布到消息队列(RabbitMQ)的主程序.该程序是用Perl 5编写的,并使用AnyEvent :: RabbitMQ与RabbitMQ进行通信.

以下最小示例(针对我遇到的问题)将在第二个命令上失败,该命令通过相同的通道发送,并显示错误"Channel closed".

use strictures 2;

use AnyEvent::RabbitMQ;

main();

############################################################################
sub main {
  _log( debug => 'main' );
  my $condvar = AnyEvent->condvar;
  my $ar      = AnyEvent::RabbitMQ->new;
  $ar->load_xml_spec;
  _log( debug => 'Connecting to RabbitMQ...' );
  $ar->connect(
    host            => 'localhost',
    port            => 5672,
    user            => 'guest',
    pass            => 'guest',
    vhost           => '/',
    timeout         => 1,
    tls             => 0,
    on_success      => sub { _on_connect_success( $condvar, $ar, @_ ) },
    on_failure      => sub { _error( …
Run Code Online (Sandbox Code Playgroud)

perl message-queue rabbitmq anyevent

5
推荐指数
1
解决办法
873
查看次数

是否有可能在linux中打开具有大量元素的消息队列?

根据文档,/proc/sys/fs/mqueue/msg_max可以使用以增加队列中消息的限制.文档还说,限制不应超过HARD_MSGMAX,这是65,536自Linux 3.5以来.

但是,即使使用500个元素尝试打开队列也会失败EMFILE:

#include <stdio.h>
#include <mqueue.h>
#include <errno.h>
#include <string.h>
#include <stdlib.h>
#include <stddef.h>
#include <sys/stat.h>

int main(int argc, char** argv)
{
    int message_size = argc > 1 ? atoi(argv[1]) : 16;
    int queue_size = argc > 2 ? atoi(argv[2]) : 10000;

    printf("Trying to open queue with msgsize: %d, and maxmsg: %d\n", message_size, queue_size);

    struct mq_attr initial_attributes = (struct mq_attr){
            .mq_msgsize = message_size,
            .mq_maxmsg = queue_size
    }; 

    int open_flags …
Run Code Online (Sandbox Code Playgroud)

c linux message-queue

5
推荐指数
1
解决办法
4375
查看次数

在PHP中为MSMQ消息设置Recoverable属性

我想设置一个Recoverable属性表单消息,我发送给MSMQ.我一直在搜索一些资源如何在PHP中执行此操作,但我没有找到任何.我试过这个

    if(!$msgOut = new COM("MSMQ.MSMQMessage")){
        return false;
    }           

    $msgOut->Body = $this->getBody(); 
    $msgOut->Label = $this->getLabel();
    $msgOut->Recoverable = true;
    $msgOut->Send($msgQueue); 
Run Code Online (Sandbox Code Playgroud)

但它不起作用.我也尝试将布尔值设置为字符串值和整数,但没有一个工作.当我尝试$msgOut->Recoverable = "true";或$msgOut->Recoverable = true;我得到com_exception

无法查找"可恢复":未知名称.

php msmq message-queue

5
推荐指数
1
解决办法
82
查看次数