Pular para o conteúdo
Skillpedia
APIs e servidores (backend)48 mil · #2375

azure-servicebus-ts

Permite que seu agente gerencie mensagens entre sistemas usando filas e tópicos. É útil para comunicação empresarial confiável.

O que ela faz

Este programa permite que outros programas enviem e recebam mensagens de forma organizada. Pense nisso como um sistema de correio para computadores, onde mensagens podem ser enviadas para caixas de entrada (filas) ou quadros de avisos (tópicos) para que outros programas as leiam.

Quando usar

  • ✓Quando um programa precisa enviar dados para outro programa de forma confiável.
  • ✓Quando você precisa que vários programas reajam a um mesmo evento.
  • ✓Para organizar tarefas que precisam ser processadas em ordem ou em lotes.

Exemplo do que pedir para a IA

“Envie a mensagem 'Olá, mundo!' para a fila 'mensagens-simples'.”

Quer saber mais? Abra as seções abaixo.

Como usar

O jeito mais fácil: copie a mensagem abaixo e cole no Claude, ChatGPT, Cursor ou outra IA. Ela lê a skill e segue as instruções.

Link da skill

https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-servicebus-ts/SKILL.md

Mensagem pronta para colar

Use esta skill para me ajudar: https://github.com/sickn33/agentic-awesome-skills/blob/main/plugins/agentic-awesome-skills-claude/skills/azure-servicebus-ts/SKILL.md Leia o arquivo SKILL.md desse link e siga as instruções dele na minha tarefa.
Como funciona

Ele funciona configurando um 'remetente' para enviar mensagens e um 'receptor' para ler mensagens de um local específico (fila ou tópico). As mensagens podem ser enviadas individualmente, em grupos ou até mesmo agendadas para serem enviadas mais tarde.

Instalação

Jeito mais fácil: copie o link da skill e cole no Claude, ChatGPT ou Cursor pedindo para seguir as instruções.

No terminal (Claude Code, Codex, Cursor), na pasta do projeto:

npx skills add sickn33/agentic-awesome-skills --skill azure-servicebus-ts

Ou baixe só o arquivo:

curl -L https://raw.githubusercontent.com/sickn33/agentic-awesome-skills/main/plugins/agentic-awesome-skills-claude/skills/azure-servicebus-ts/SKILL.md -o SKILL.md
Conteúdo técnico (SKILL.md)

Tradução do texto original do autor no GitHub. Os comandos e códigos estão como no original.

SDK do Azure Service Bus para TypeScript

Mensagens corporativas com filas, tópicos e assinaturas.

Instalação

npm install @azure/service-bus @azure/identity

Variáveis de Ambiente

SERVICEBUS_NAMESPACE=<namespace>.servicebus.windows.net
SERVICEBUS_QUEUE_NAME=my-queue
SERVICEBUS_TOPIC_NAME=my-topic
SERVICEBUS_SUBSCRIPTION_NAME=my-subscription

Autenticação

import { ServiceBusClient } from "@azure/service-bus";
import { DefaultAzureCredential } from "@azure/identity";

const fullyQualifiedNamespace = process.env.SERVICEBUS_NAMESPACE!;
const client = new ServiceBusClient(fullyQualifiedNamespace, new DefaultAzureCredential());

Fluxo de Trabalho Principal

Enviar Mensagens para a Fila

const sender = client.createSender("my-queue");

// Single message
await sender.sendMessages({
  body: { orderId: "12345", amount: 99.99 },
  contentType: "application/json",
});

// Batch messages
const batch = await sender.createMessageBatch();
batch.tryAddMessage({ body: "Message 1" });
batch.tryAddMessage({ body: "Message 2" });
await sender.sendMessages(batch);

await sender.close();

Receber Mensagens da Fila

const receiver = client.createReceiver("my-queue");

// Receive batch
const messages = await receiver.receiveMessages(10, { maxWaitTimeInMs: 5000 });
for (const message of messages) {
  console.log(`Received: ${message.body}`);
  await receiver.completeMessage(message);
}

await receiver.close();

Assinar Mensagens (Orientado a Eventos)

const receiver = client.createReceiver("my-queue");

const subscription = receiver.subscribe({
  processMessage: async (message) => {
    console.log(`Processing: ${message.body}`);
    // Message auto-completed on success
  },
  processError: async (args) => {
    console.error(`Error: ${args.error}`);
  },
});

// Stop after some time
setTimeout(async () => {
  await subscription.close();
  await receiver.close();
}, 60000);

Tópicos e Assinaturas

// Send to topic
const topicSender = client.createSender("my-topic");
await topicSender.sendMessages({
  body: { event: "order.created", data: { orderId: "123" } },
  applicationProperties: { eventType: "order.created" },
});

// Receive from subscription
const subscriptionReceiver = client.createReceiver("my-topic", "my-subscription");
const messages = await subscriptionReceiver.receiveMessages(10);

Sessões de Mensagens

// Send session message
const sender = client.createSender("session-queue");
await sender.sendMessages({
  body: { step: 1, data: "First step" },
  sessionId: "workflow-123",
});

// Receive session messages
const sessionReceiver = await client.acceptSession("session-queue", "workflow-123");
const messages = await sessionReceiver.receiveMessages(10);

// Get/set session state
const state = await sessionReceiver.getSessionState();
await sessionReceiver.setSessionState(Buffer.from(JSON.stringify({ progress: 50 })));

await sessionReceiver.close();

Tratamento de Mensagens Mortas (Dead-Letter)

// Move to dead-letter
await receiver.deadLetterMessage(message, {
  deadLetterReason: "Validation failed",
  deadLetterErrorDescription: "Missing required field: orderId",
});

// Process dead-letter queue
const dlqReceiver = client.createReceiver("my-queue", { subQueueType: "deadLetter" });
const dlqMessages = await dlqReceiver.receiveMessages(10);
for (const msg of dlqMessages) {
  console.log(`DLQ Reason: ${msg.deadLetterReason}`);
  // Reprocess or log
  await dlqReceiver.completeMessage(msg);
}

Mensagens Agendadas

const sender = client.createSender("my-queue");

// Schedule for future delivery
const scheduledTime = new Date(Date.now() + 60000); // 1 minute from now
const sequenceNumber = await sender.scheduleMessages(
  { body: "Delayed message" },
  scheduledTime
);

// Cancel scheduled message
await sender.cancelScheduledMessages(sequenceNumber);

Adiamento de Mensagens

// Defer message for later
await receiver.deferMessage(message);

// Receive deferred message by sequence number
const deferredMessage = await receiver.receiveDeferredMessages(message.sequenceNumber!);
await receiver.completeMessage(deferredMessage[0]);

Espiar Mensagens (Não Destrutivo)

const receiver = client.createReceiver("my-queue");

// Espiar sem remover
const peekedMessages = await receiver.peekMessages(10);
for (const msg of peekedMessages) {

…
Perguntas frequentes

O que são filas e tópicos?

Filas são como caixas de correio individuais onde uma mensagem vai para um único receptor. Tópicos são como quadros de avisos onde uma mensagem pode ser vista por vários assinantes.

O que acontece se um programa não conseguir ler uma mensagem?

A mensagem pode ser devolvida à fila para ser lida mais tarde, movida para uma 'caixa de mensagens com problemas' (dead-letter queue) para análise, ou marcada como não processada, dependendo de como foi configurada.

Posso enviar mensagens que só devem ser processadas em um momento específico?

Sim, é possível agendar mensagens para serem entregues em uma data e hora futuras.

Detalhes

Descrição original do autor

Enterprise messaging with queues, topics, and subscriptions.

repo: sickn33/agentic-awesome-skills

Popularidade

Estrelas no GitHub
48 mil
Posição no ranking
#2375
Licença
MIT
Atualizada em
15/10/2026

Essa skill é útil?

0

Entre para votar.

Comentários

  • …

Mais skills deste repositório

Skills parecidas