Windows 2008 – Aumentar la prioridad de las tareas programadas.

Hace un par de semanas al programar un proceso en el administrador de tareas en Windows 2008 tuve muchos problemas de rendimiento en mi aplicación por lo que decidí investigar un poco y me encontré con que en Windows las tareas se crean con un nivel de prioridad bajo por default o cómo lo indica la documentación de Microsoft sobre TaskSettings.Priority property: se establece una prioridad de nivel 7. Los niveles de prioridad para las tareas son los siguientes:

Task priority Priority Class Priority Level
0 REALTIME_PRIORITY_CLASS THREAD_PRIORITY_TIME_CRITICAL
1 HIGH_PRIORITY_CLASS THREAD_PRIORITY_HIGHEST
2 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
3 ABOVE_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_ABOVE_NORMAL
4 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
5 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
6 NORMAL_PRIORITY_CLASS THREAD_PRIORITY_NORMAL
7 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
8 BELOW_NORMAL_PRIORITY_CLASS THREAD_PRIORITY_BELOW_NORMAL
9 IDLE_PRIORITY_CLASS THREAD_PRIORITY_LOWEST
10 IDLE_PRIORITY_CLASS THREAD_PRIORITY_IDLE

Bueno, después de esta breve explicación sobre la prioridad en las tareas programadas, les mostraré cómo pueden cambiar esto en Windows 2008. No he hecho prueba en otra versión de Windows por lo que he sido claro en decir que esto lo he probado en la versión 2008.

Lo primero que haremos será crear una tarea programada de la forma en que siempre lo hacemos y de la manera en que lo necesitemos.  En mi caso será un simple batch con la línea: dir > prueba.txt.

 

Una vez que hemos creado nuestra tarea seleccionaremos la opción Export del Task Scheduler y con ello exportaremos la configuración de nuestra tarea en formato xml. Al abrir ese archivo nos encontremos con algo como lo siguiente:

TaskExportedXml

 

Así que para cambiar la prioridad solo basta buscar el nodo  <Priority>7</Priority> y establecer el nivel que deseamos modificar y una vez modificado el nivel eliminaremos la tarea en el Task Scheduler e importar el XML. De esa forma conseguiremos elevar el nivel de prioridad con que nuestras tareas programadas son ejecutadas.

 

1 Trackback / Pingback

  1. DELPHI – Obtener el listado de tareas programadas usando la api Task Scheduler | Blog del Poli

Deja un comentario