¡Mi webjob tiene vida propia!
10 Oct 2016Hace 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.**
- 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 }
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.