I'm looking for some documentation on how to set up multiple instances of an Azure webjob that handle a single queue. I came across this article: Multiple Azure Webjob instances on one queue, which was helpful. My biggest takeaway is that if I scale out my app service to multiple instances, "Each job instance will pick a different message from the queue." That's great, and it ensures that my jobs won't be duplicated.
However, I want to know if the same is true if I create a duplicate, separate app service (with the same web job on each), and run these two (or more) instances simultaneously instead of simply "scaling out". The reason for this is simply because I need more outbound IP addresses. A third party api consumed by my web job throttles me by IP address. So as my app is gaining more users, and I "scale out", I start getting more and more timeouts from this third part API. My proposed solution is to create separate app services that are essentially cloned. But I want to be sure that the jobs that come from the queue will not be duplicated.
For reference, here is what my web job function looks like:
public void ProcessQueueMessageAsync([QueueTrigger("quicktransferqueue")] string message, ILogger logger)
{
var model = Newtonsoft.Json.JsonConvert.DeserializeObject<QuickTransferModel>(message);
//Hit my third-party API here...
}