标签: message-queue

Express 中的 Laravel 队列作业相当于什么?

Laravel 提供了一项名为“队列”的功能,您可以使用服务(beanstalkd、Amazon SQS、Rabbit MQ)将长时间运行的任务委托给后台工作人员。一个简单的例子是通过该排队作业发送电子邮件,而不是从控制器发送电子邮件。所述排队作业能够识别任务是否完成,或者如果失败,则重试一定次数。

Express (NodeJS) 与此功能等效的功能是什么(如果存在的话)?我尝试通过直接查找服务上的资源(例如 RabbitMQ)来研究该主题,并且我只找到了像这样的教程,但仅通过阅读它,看起来他们正在从头开始实现这个东西。

也许我的期望是这里出了问题,但是是否有相当于为排队作业编写业务逻辑代码并分派它的功能?

message-queue node.js express

6
推荐指数
1
解决办法
2278
查看次数

Mosquitto:外发消息被丢弃

首先,我将首先说明这个问题是Mosquitto的改进,不使用桥配置将消息传播到 AWS IoT,因此在该问题上也可以找到很多上下文和日志,但我决定开始一个新的,因为我我猜我发现了实际问题的真正症状,我更喜欢单独处理它以避免与其他可能的问题混淆:

Mosquitto ( /var/log/mosquitto/mosqutto.log) 日志文件实际上已被禁用,并且唯一可用的日志来自/var/log/syslog但是,当我们启用它们并发出 a 时cat mosquitto.log|grep bridge,出现了一些相关消息:

1.- Bridge local.bridgeawsiot doing local SUBSCRIBE on topic #

这表明所有主题都在桥接

2.- Connecting bridge awsiot (myEndpoint.iot.us-east-1.amazonaws.com:8883)

这表明它正在使用正确的端点

3.- Outgoing messages are being dropped for client local.bridgeawsiot.

这让我很担心,因为我真的不知道为什么会这样,但似乎是问题的明显症状,但经过几次搜索后我发现:

“当内部消息队列已满时,会显示消息“正在删除传出消息”,所以我猜消息只是被排队,但实际上并未发送到 AWS IoT。

所以我的问题是:

  1. 为什么这些消息会被丢弃?
  2. 如果它们因为队列已满而被丢弃,那么为什么排队的消息没有被发送到桥接端点?

相关资料:

Version: 1.4.14-0mosquitto1~jessie2
OS: Debian GNU/Linux 9.1 (stretch)
Run Code Online (Sandbox Code Playgroud)

message-queue mqtt mosquitto paho

6
推荐指数
1
解决办法
2520
查看次数

Android中的消息队列是什么?

谁能解释一下Android中的消息队列是什么?它是正在运行的进程列表吗?我找不到很好的来源来解释它。

我问这个问题是因为我正在阅读有关视图类的方法帖子。

邮政

添加到 API 级别 1 布尔值帖子(可运行操作)

导致 Runnable 添加到消息队列中。可运行程序将在用户界面线程上运行。

先感谢您。

post android message-queue

6
推荐指数
1
解决办法
5064
查看次数

RabbitMq 动态添加/删除队列/消费者

我有一个应用程序可以同时从多个用户接收三种类型的消息,我正在使用 3 个队列/消费者和 3 个交换器处理它。我的问题是,当队列中有来自一个用户的数千条消息时,其他用户正在等待。

我正在寻找一种解决方案来并行执行每个用户的作业。我可以为每个用户动态创建队列,但这不是一个好的解决方案,因为会有数百个队列和使用者。如何自动删除空闲的消费者/队列。我可以以任何方式使用 celery 和 redis 来解决这个问题吗?

message-queue rabbitmq task-queue celery

6
推荐指数
1
解决办法
3022
查看次数

如何配置 Azure 服务总线队列以将消息推送到客户端而无需轮询?

我是 Azure 服务总线的新手,我发现我需要不断轮询队列消息才能接收它们。但是,我希望 Queue 将消息推送到客户端的某种侦听器,而不必轮询消息。

我已经读到轮询在 Azure 服务总线中是可选的,但我找不到没有它如何接收消息。

如果可以的话请帮忙。谢谢

message-queue azure azureservicebus

6
推荐指数
2
解决办法
3020
查看次数

Python中传统线程和异步线程如何通信?

在python中,在两个s之间建立单向通信的惯用方法是什么threading.Thread,将它们称为 threada和 thread b。

a是生产者,它不断地产生价值以供b消费。

b是消费者,它读取 生成的一个值a,用协程处理该值,然后读取下一个值,依此类推。

插图:

q = very_magic_queue.Queue()


def worker_of_a(q):
    while True:
        q.put(1)
        time.sleep(1)

a = threading.Thread(worker_of_a, args=(q,))
a.start()


async def loop(q):
    while True:
        # v must be processed in the same order as they are produced
        v = await q.get()
        print(v)

async def foo():
    pass

async def b_main(q):
    loop_fut = asyncio.ensure_future(loop(q))
    foo_fut = asyncio.ensure_future(foo())
    _ = await asyncio.wait([loop_fut, foo_fut], ...)
    # blah blah blah

def …
Run Code Online (Sandbox Code Playgroud)

python queue message-queue python-asyncio

6
推荐指数
1
解决办法
3467
查看次数

将 ROS 发布者或订阅者的队列大小设置为较大值的原因

当我查看机器人操作系统(ROS)的教程时,我发现大多数示例代码将发布者的队列大小设置为较大的值,例如1000。我认为这会导致节点失去实时响应。

人们出于什么目的将其设置为那么大的值?

message-queue publisher subscriber ros

6
推荐指数
1
解决办法
1万
查看次数

如何处理消息队列中无序出现的消息?

我曾经在一次采访中被问到,如何处理消息队列中无序传入的消息。已经有一段时间了,我还没有找到明确的答案,我想知道该领域的专家是否可以帮助我回答这个问题,以满足我自己的好奇心。

据我了解,某些消息队列提供一次性和 FIFO 保证。我还知道流系统中事件时间和处理时间的概念。例如,在像 Kafka 这样的基于日志的消息队列中,由于偏移量和消息持久性的存在,混合排序可能不太可能发生(我可能是错的)。我还考虑过使用时间戳,要求每个消息发送者在发送之前记录消息的时间,但由于时钟偏差,这充满了不一致。

考虑到所有这些,我想知道如何解决 AMQP、JMS 或 RabbitMQ 等传统消息传递系统中的混合排序问题,其中十几个物联网设备可能正在发送消息,而我作为消费者希望以正确的顺序协调它们。

distributed-computing message-queue distributed-system apache-kafka

6
推荐指数
1
解决办法
4454
查看次数

如何在aws sqs节点js中接收消息

我正在我的 Node js 项目中实现 sqs。我正在做的是在 SQS 中发送 msg 并接收它。但是当我收到它只是 ResponseMetadata 对象

   "ResponseMetadata": {
    "RequestId": "8659872b-10f0-57b6-9d57-d1852aba1a64"
    }
Run Code Online (Sandbox Code Playgroud)

没有消息对象作为响应。我该怎么办?我有很多可能性,例如更改参数值等,但没有任何效果。

我的代码

   const AWS = require('aws-sdk');
   AWS.config.update({ accessKeyId: process.env.AWS_ACCESS_KEY_ID, secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY, region: 'eu-west-1' })
   const sqs = new AWS.SQS({apiVersion: '2012-11-05'});

   onst queueUrl = "https://eu-west-1.queue.amazonaws.com/******/test-queue";
Run Code Online (Sandbox Code Playgroud)

发送信息

     let params = {
            MessageBody: 'Hello world!',
            MessageAttributes: {
                "Title": {
                    DataType: "String",
                    StringValue: "The Whistler"
                },
                "Author": {
                    DataType: "String",
                    StringValue: "John Grisham"
                },
                "WeeksOn": {
                    DataType: "Number",
                    StringValue: "6"
                }
            },
            QueueUrl: queueUrl,
            DelaySeconds: 0
        };

        sqs.sendMessage(params, …
Run Code Online (Sandbox Code Playgroud)

message-queue amazon-sqs amazon-web-services node.js

6
推荐指数
1
解决办法
2860
查看次数

如何在发布新消息之前删除rabbitmq中的特定消息?

我有一个订阅者将数据推送到队列中。现在消息看起来像这样

{
 "Content": {
   "_id" ""5ceya67bbsbag3",
   "dataset": { 
     "upper": {},
      "lower": {}

}
}
Run Code Online (Sandbox Code Playgroud)

现在可以使用相同的内容 id 推送新消息,但数据将不同。因此,我想删除具有相同 id 的旧消息或替换那些 id 相同的消息并仅保留最新消息。

我还没有在rabbitmq 中找到直接的解决方案。请指导我如何做到这一点?

我已经浏览了一些帖子。

发布 1

帖子 2

javascript message-queue amqp rabbitmq node.js

6
推荐指数
2
解决办法
547
查看次数