Tengo una función simple Trabajador Azure ejecutándose que realiza una tarea todos los días a las 12 PM. A continuación se muestra el código que logra esto.Cómo programar una tarea en la función de trabajador azul de Windows
public override void Run()
{
try
{
while (true)
{
int time = Convert.ToInt32(DateTime.Now.TimeOfDay);
if (time == 12)
{
DoSomethingElse();
}
}
}
catch (Exception ex)
{
Log.Add(ex, true);
}
}
Aquí DoSomethingElse()
es un método para enviar un correo electrónico a todos los días 24:00, y también se dispara una vez y sólo una vez por día.
¿Cómo puedo implementar un planificador que se active cuando la hora es 12 PM y ejecute DoSomethingElse()
.
Mi pregunta es: ¿Es este (código anterior) es el mejor método o utiliza cualquier herramienta de terceros.
posible duplicado de [Azul - ¿Cómo se ejecuta un trabajo que llama a una función en el servicio web a toda hora? ] (http://stackoverflow.com/questions/8548159/azure-how-do-i-run-a-job-that-calls-a-function-in-the-webservice-every-hour) –
En un lado -nota, su código anterior causará un ciclo cerrado, ejecutando la CPU constantemente al 100% y puede hacer que Azure reinicie su rol de trabajador. Por lo menos necesitas poner una declaración de suspensión allí. O usa un temporizador para esperar. Pero, en cualquier caso, debido a la multiinstancia, debe buscar otras respuestas a la programación, como lo que Makogon está hablando. – Frans