Skip to content

informat.mq Message Queue

Overview

Use informat.mq to perform message queue operations

basicGet

Pull messages from the queue

javascript
informat.mq.basicGet(module, queue, autoAck);
ParameterTypeDescription
moduleStringMessage queue module identifier
queueStringQueue identifier
autoAckBooleanSet whether to auto-acknowledge. Generally set to false, i.e., no auto-acknowledgment

Return Value

Type is MqMessage

TIP

If you want to get a single message, use pull mode. However, you should not use loop pull mode to replace push mode as this will seriously affect performance.

Example

javascript
var message = informat.mq.basicGet("mq", "TaskQueue", true);
console.log("message", message);
json
{
  "body": "{\r\n\t'taskId':'1',\r\n\t'taskStatus':'finished'\r\n}",
  "props": {
    "contentLength": 0,
    "deliveryTag": 1,
    "finalRetryForMessageWithNoId": false,
    "headers": {},
    "lastInBatch": false,
    "messageCount": 0,
    "projectionUsed": false,
    "publishSequenceNumber": 0,
    "receivedDeliveryMode": "NON_PERSISTENT",
    "receivedExchange": "",
    "receivedRoutingKey": "croe0zft168y3-skyduxiaoxiduilie-Test1",
    "redelivered": false
  }
}

publish

Send messages to the queue

javascript
informat.mq.publish(moduleKey, routingKey, setting, message);
ParameterTypeDescription
moduleStringMessage queue module identifier
routingKeyStringRouting key
settingPublishSettingPublish settings
messageStringMessage to send

INFO

  • If setting.waitForConfirms is enabled, it will wait for the message queue to confirm that the message has been delivered successfully after message delivery. If delivery fails, an exception will be thrown
  • Enabling setting.waitForConfirms will affect delivery performance, but it can ensure successful delivery

Example

js
//
let body = {
  taskId: "1",
  taskStatus: "finished",
};
informat.mq.publish("mq", "TaskQueue", null, JSON.stringify(body));

queuePurge

Clear the queue

javascript
informat.mq.queuePurge(module, queue);
ParameterTypeDescription
moduleStringMessage queue module identifier
queueStringQueue identifier

Example

Send message queue after task completion

js
informat.mq.queuePurge("mq", "TaskQueue");

basicAck

After receiving the message, manually acknowledge successful data reception

javascript
informat.mq.basicAck(message, multiple);
ParameterTypeDescription
messageMqMessageMessage object
multipleBooleanWhether to support batch confirmation

Example

javascript
// Received task completion message event
informat.mq.basicAck(message, true);

basicNack

Nack rejection method Allows consumers to reject a message and optionally requeue it or discard it

javascript
informat.mq.basicNack(message, multiple, requeue);
ParameterTypeDescription
messageMqMessageMessage object
multipleBooleanIf false, indicates the message with this deliveryTag is rejected. If true, all messages with deliveryTag less than this one are rejected.
requeueBooleanWhether to redeliver to the queue

Example

javascript
informat.mq.basicNack(message, true, true);

basicReject

Reject rejection When a message is rejected and requeue is false, the message will be delivered to the dead letter queue

javascript
informat.mq.basicReject(message, requeue);
ParameterTypeDescription
messageMqMessageMessage object
requeueBooleanWhether to redeliver to the queue

Example

javascript
informat.mq.basicReject(message, true);

basicRecover

Resend unacknowledged messages

javascript
informat.mq.basicRecover(message, requeue);
ParameterTypeDescription
messageMqMessageMessage object
requeueBooleanIf requeue is true, unacknowledged messages will be re-added to the queue, so the same message may be assigned to a different consumer than before. If false, the same message will be assigned to the same consumer as before

Example

javascript
informat.mq.basicRecover(message, true);

What to do if you accidentally delete a queue in the message queue backend?

  • You can find the corresponding message queue in the configuration interface of the Informat message queue module, edit it, and republish it. The platform will automatically create the message queue.