students microsoft management for azure azure-functions

microsoft - Aceleración del procesamiento de la cola de almacenamiento de Azure en la aplicación de función de Azure



microsoft management azure (1)

Hay algunas opciones que puede considerar.

Primero, hay algunos mandos que puede configurar en host.json que controlan el procesamiento de la cola (documentado here ). El control queues.batchSize es la cantidad de mensajes de cola que se recuperan a la vez. Si se establece en 1, el tiempo de ejecución recuperará 1 mensaje a la vez, y solo recuperará el siguiente cuando se complete el procesamiento de ese mensaje. Esto podría darle algún nivel de serialización en una sola instancia .

Otra opción podría ser que configure NextVisibleTime en los mensajes que pone en cola de tal manera que queden espaciados, de manera predeterminada, los mensajes que están en cola se vuelven visibles y están listos para procesarse de inmediato.

Una opción final podría ser que usted ponga en cola un mensaje con la colección de todas las URL de un sitio, en lugar de una a la vez, de modo que cuando el mensaje se procesa, puede procesar las URL en serie en su función y limitar el paralelismo. de esa manera.

He creado una aplicación de la función Azure con un desencadenante de la cola de almacenamiento de Azure que procesa una cola en la que cada elemento de la cola es una URL. La función simplemente descarga el contenido de la URL. Tengo otra función que carga y analiza el Sitemap XML de un sitio y agrega todas las URL de la página a la cola. El problema que tengo es que la aplicación Functions se ejecuta con demasiada rapidez y afecta al sitio web para que comience a devolver los errores del servidor. ¿Hay alguna forma de limitar / regular la velocidad a la que se ejecuta la aplicación Funciones?

Por supuesto, podría escribir un trabajo web simple que los procesó en serie (o con algo asíncrono pero que limita el número de solicitudes concurrentes), pero me gusta mucho la simplicidad de las funciones de Azure y quería probar la computación "sin servidor".