npm install @azure/service-bus
Implement producer and consumer for a Service Bus queue with peekLock.
1 import { ServiceBusClient } from '@azure/service-bus'; 2 3 const sbClient = new ServiceBusClient(process.env.SERVICE_BUS_CONNECTION!); 4 5 // Producer 6 async function publishOrder(order: { id: string; amount: number }) { 7 const sender = sbClient.createSender('orders'); 8 await sender.sendMessages({ 9 body: order, 10 messageId: order.id, // deduplication 11 contentType: 'application/json', 12 }); 13 await sender.close(); 14 console.log('Sent order:', order.id); 15 } 16 17 // Consumer 18 async function startConsumer() { 19 const receiver = sbClient.createReceiver('orders', { 20 receiveMode: 'peekLock', 21 }); 22 23 receiver.subscribe({ 24 processMessage: async (msg) => { 25 const order = msg.body; 26 console.log('Processing:', order.id); 27 await processOrder(order); 28 await receiver.completeMessage(msg); // Acknowledge 29 }, 30 processError: async (err) => { 31 console.error('Error:', err.message); 32 }, 33 }); 34 } 35 36 async function processOrder(order: any) { /* business logic */ } 37 38 publishOrder({ id: 'ord-123', amount: 99.99 }); 39 startConsumer();
Producer sends message, consumer logs received message and completes it
Sign in to share your feedback and join the discussion.