¡Mi webjob tiene vida propia!

Hace unos días uno de mis compañeros se me acercó y me dijo: “¡Mi webjob tiene vida propia!”, os podéis imaginar mi cara de sorpresa ante tal afirmación.

Lo que le estaba sucediendo es que tenía un run a continuous webjob que cuando se ejecutaba lo hacía más de una vez. A mí nunca me había sucedido tal cosa, o al menos no me había dado cuenta o he tenido mucha suerte de que no me sucediera que es lo más probable.

Después de estar investigando un rato, vimos que el problema estaba en que si tú Azure Web App está corriendo en múltiples instancias el webjob corre en todas ellas. Lo más curioso es que esto solo sucede para este tipo de webjobs, si el webjob es del tipo Triggered se ejecuta solo en una de las instancias elegida al azar.

Para solucionar esto hay dos alternativas:

  • Si creas el webjob desde el portal de azure y subes el paquete, en la opción scale debes seleccionar single instance.

portalAzureWebJob

  • Si lo despliegas directamente de Visual Studio debes añadir un archivo en la raíz del proyecto del webjob llamado settings.job que debe contener la siguiente información:
{ "is_singleton": true }

vsAzureWebJob

Así que vigilar vuestros webjobs de cerca porque a veces son como los Gremlins y se reproducen.

Gracias a Roberto Grassi por dar con el problema y dar vida a esta post.

[Total: 0    Average: 0/5]