How to use the @azure/service-bus.delay function in @azure/service-bus

To help you get started, we’ve selected a few @azure/service-bus examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github Azure / azure-sdk-for-js / sdk / servicebus / service-bus / samples / typescript / advancedFeatures / deferral.ts View on Github external
} else {
        // we dead-letter the message if we don't know what to do with it.
        console.log(
          "Unknown message received, moving it to dead-letter queue ",
          brokeredMessage.body
        );
        await brokeredMessage.deadLetter();
      }
    };
    const onError: OnError = (err) => {
      console.log(">>>>> Error occurred: ", err);
    };

    let receiver = queueClient.createReceiver(ReceiveMode.peekLock);
    receiver.registerMessageHandler(onMessage, onError, { autoComplete: false }); // Disabling autoComplete so we can control when message can be completed, deferred or deadlettered
    await delay(10000);
    await receiver.close();
    console.log("Total number of deferred messages:", deferredSteps.size);

    receiver = queueClient.createReceiver(ReceiveMode.peekLock);
    // Now we process the deferred messages
    while (deferredSteps.size > 0) {
      const step = lastProcessedRecipeStep + 1;
      const sequenceNumber = deferredSteps.get(step);
      const message = await receiver.receiveDeferredMessage(sequenceNumber);
      if (message) {
        console.log("Process deferred message:", message.body);
        await message.complete();
      } else {
        console.log("No message found for step number ", step);
      }
      deferredSteps.delete(step);
github Azure / azure-sdk-for-js / sdk / servicebus / service-bus / samples / typescript / advancedFeatures / deferral.ts View on Github external
{ step: 1, title: "Shop" },
    { step: 2, title: "Unpack" },
    { step: 3, title: "Prepare" },
    { step: 4, title: "Cook" },
    { step: 5, title: "Eat" }
  ];
  const promises = new Array();
  for (let index = 0; index < data.length; index++) {
    const message = {
      body: data[index],
      label: "RecipeStep",
      contentType: "application/json"
    };
    // the way we shuffle the message order is to introduce a tiny random delay before each of the messages is sent
    promises.push(
      delay(Math.random() * 30).then(async () => {
        try {
          await sender.send(message);
          console.log("Sent message step:", data[index].step);
          return;
        } catch (err) {
          console.log("Error while sending message", err);
          return;
        }
      })
    );
  }
  // wait until all the send tasks are complete
  await Promise.all(promises);
  await queueClient.close();
  await sbClient.close();
}
github Azure / azure-sdk-for-js / sdk / servicebus / service-bus / samples / javascript / advancedFeatures / deferral.js View on Github external
{ step: 1, title: "Shop" },
    { step: 2, title: "Unpack" },
    { step: 3, title: "Prepare" },
    { step: 4, title: "Cook" },
    { step: 5, title: "Eat" }
  ];
  const promises = new Array();
  for (let index = 0; index < data.length; index++) {
    const message = {
      body: data[index],
      label: "RecipeStep",
      contentType: "application/json"
    };
    // the way we shuffle the message order is to introduce a tiny random delay before each of the messages is sent
    promises.push(
      delay(Math.random() * 30).then(async () => {
        try {
          await sender.send(message);
          console.log("Sent message step:", data[index].step);
        } catch (err) {
          console.log("Error while sending message", err);
        }
      })
    );
  }
  // wait until all the send tasks are complete
  await Promise.all(promises);
  await queueClient.close();
  await sbClient.close();
}
github Azure / azure-sdk-for-js / sdk / servicebus / service-bus / samples / javascript / advancedFeatures / deferral.js View on Github external
} else {
        // we dead-letter the message if we don't know what to do with it.
        console.log(
          "Unknown message received, moving it to dead-letter queue ",
          brokeredMessage.body
        );
        await brokeredMessage.deadLetter();
      }
    };
    const onError = (err) => {
      console.log(">>>>> Error occurred: ", err);
    };

    let receiver = queueClient.createReceiver(ReceiveMode.peekLock);
    receiver.registerMessageHandler(onMessage, onError, { autoComplete: false }); // Disabling autoComplete so we can control when message can be completed, deferred or deadlettered
    await delay(10000);
    await receiver.close();
    console.log("Total number of deferred messages:", deferredSteps.size);

    receiver = queueClient.createReceiver(ReceiveMode.peekLock);
    // Now we process the deferred messages
    while (deferredSteps.size > 0) {
      const step = lastProcessedRecipeStep + 1;
      const sequenceNumber = deferredSteps.get(step);
      const message = await receiver.receiveDeferredMessage(sequenceNumber);
      if (message) {
        console.log("Process deferred message:", message.body);
        await message.complete();
      } else {
        console.log("No message found for step number ", step);
      }
      deferredSteps.delete(step);
github Azure / azure-sdk-for-js / sdk / servicebus / service-bus / samples / typescript / gettingStarted / session.ts View on Github external
async function receiveMessages(ns: ServiceBusClient, sessionId: string): Promise {
  // If receiving from a Subscription, use `createSubscriptionClient` instead of `createQueueClient`
  const queueClient = ns.createQueueClient(queueName);
  const receiver = queueClient.createReceiver(ReceiveMode.peekLock, { sessionId: sessionId });

  const onMessage = async (brokeredMessage: ServiceBusMessage) => {
    console.log(`Received: ${brokeredMessage.sessionId} - ${brokeredMessage.body} `);
  };
  const onError: OnError = (err): void => {
    console.log(">>>>> Error occurred: ", err);
  };
  receiver.registerMessageHandler(onMessage, onError);
  await delay(5000);

  await queueClient.close();
}
github Azure / azure-sdk-for-js / sdk / servicebus / service-bus / samples / typescript / gettingStarted / receiveMessagesStreaming.ts View on Github external
// the sample in sessions.ts file
  const receiver = queueClient.createReceiver(ReceiveMode.peekLock);

  const onMessageHandler: OnMessage = async (brokeredMessage) => {
    console.log(`Received message: ${brokeredMessage.body}`);
    await brokeredMessage.complete();
  };
  const onErrorHandler: OnError = (err) => {
    console.log("Error occurred: ", err);
  };

  try {
    receiver.registerMessageHandler(onMessageHandler, onErrorHandler, { autoComplete: false });

    // Waiting long enough before closing the receiver to receive messages
    await delay(5000);

    await receiver.close();
    await queueClient.close();
  } finally {
    await sbClient.close();
  }
}
github Azure / azure-sdk-for-js / sdk / servicebus / service-bus / samples / javascript / gettingStarted / scheduledMessages.js View on Github external
let numOfMessagesReceived = 0;
  const onMessageHandler = async (brokeredMessage) => {
    numOfMessagesReceived++;
    console.log(`Received message: ${brokeredMessage.body} - ${brokeredMessage.label}`);

    await brokeredMessage.complete();
  };
  const onErrorHandler = (err) => {
    console.log("Error occurred: ", err);
  };

  console.log(`\nStarting receiver immediately at ${new Date(Date.now())}`);

  let receiver = queueClient.createReceiver(ReceiveMode.peekLock);
  receiver.registerMessageHandler(onMessageHandler, onErrorHandler);
  await delay(5000);
  await receiver.close();
  console.log(`Received ${numOfMessagesReceived} messages.`);

  await delay(5000);
  receiver = queueClient.createReceiver(ReceiveMode.peekLock);

  console.log(`\nStarting receiver at ${new Date(Date.now())}`);

  receiver.registerMessageHandler(onMessageHandler, onErrorHandler);
  await delay(5000);
  await receiver.close();
  console.log(`Received ${numOfMessagesReceived} messages.`);

  await queueClient.close();
}