I have an azure function that works in terms of consumption, which runs on a service bus topic, and then just adds another message to the queue (so itโs basically not processed, but only IO). The trigger subject fills at a speed of ~ 1000 / s. I naively thought that the function could easily keep up, but in fact it is hopelessly overloaded, and the subscription to the topic fills up very quickly. It works for me for several hours, so I suspect that it is completely decrypted.
How much should I expect from features? Is bandwidth of the order of thousands per second impossible?
edit: I regularly see this error in the logs:
The connection attempt lasted for 00:00:00. TCP error code 10013: An attempt was made to access the socket in a prohibited way by its access permissions.
Functions seem to not work well with the service bus on a scale?
change 2 to solve Replace this binding:
public static async Task Run(BrokeredMessage msgin, Binder binder, TraceWriter log) { var collector = await binder.BindAsync<IAsyncCollector<BrokeredMessage>>( new ServiceBusAttribute("my-queue")); ... }
with this:
public static IAsyncCollector<BrokeredMessage> collector; public static async Task Run(BrokeredMessage msgin, Binder binder, TraceWriter log) { collector = collector ?? await binder.BindAsync<IAsyncCollector<BrokeredMessage>>( new ServiceBusAttribute("my-queue")); ... }
exhaustion of the socket was prevented, and the function could not keep up with the manufacturer, not a problem.
source share