SharePoint 2010 - Crear un Timer Job
Vamos a explicar cómo crear un Timer Job para SharePoint 2010. Un Timer Job es un proceso el cuál corre en background y es lanzado cada cierta frecuencia de tiempo de igual manera que los servicios Windows.
Los Timer Jobs son manejados a través de un servicio de Windows llamadoSharePoint 2010 Timer, el cuál por defecto esta iniciado.
SharePoint 2010 dispone por defecto de bastantes Timer Jobs. Para una completa descripción de estos Timer Jobs visitad el siguiente enlace de la MSDN:
Timer Job reference
Ahora vamos a explicar cómo crear nuestro Timer Job. En el ejemplo vamos a crear un Timer Job el cuál cada 5 minutos minuto va a escribir un registro en la lista de Tareas.
Lo primero que debemos de hacer es abrir Visual Studio 2010 y crear un Proyecto vacío de SharePoint.
En la pantalla de qué tipo de solución crear elegimos la opción Implementar como solución de granja de servidores.
Una vez creado el proyecto agregamos una clase que será la definición de nuestro Timer Job. Esta clase debe heredar de la clase SPJobDefinitionubicada en el espacio de nombres Microsoft.Sharepoint.Administration.
Agregamos 2 constructores a la clase. El primero sin parámetros y el segundo con parámetros que será el cuál usaremos.
Después debemos redefinir el método Execute que es donde deberemos incluir nuestra lógica, en nuestro caso escribir un registro en la lista de Tareas.
El siguiente paso es crearnos una característica cuyo ámbito debe serWebApplication, es decir la caraterística estará activada para todos los sitios de la aplicación web. Para cambiar el ámbito pulsar dos veces sobre el nombre de la característica y nos aparecerá la ventana de propiedades.
Una vez cambiado el ámbito a la característica le agregamos un receptor de eventos. Lo que vamos a hacer es al activar la característica instalar el Timer Job y al desactivarla eliminar el Timer Job.
El código a incluir en el método FeatureActivated para instalar el Timer Job sería el siguiente:
Respecto cada cuanto está programado que se ejecute el Timer Job decir que en el ejemplo decimos que se debe ejecutar cada 5 minutos, por ello usamos la claseSPMinuteSchedule.
La cuestión es que podemos hacer que el Timer Job se ejecute en otro espacio de tiempo, por lo cual debemos usar otras clases diferentes a SPMinuteSchedule.
Todas las clases de las que disponemos son:
Clase SPOneTimeSchedule: Ejecuta el Timer Job en un rango de tiempo especificado. Referencia
Clase SPMinuteSchedule: Ejecuta el Timer Job en un número determinado de minutos (cada minuto o cada 200 minutos por ejemplo). Referencia
Clase SPHourlySchedule: Ejecuta el Timer Job cada hora. Referencia
Clase SPDailySchedule: Ejecuta el Timer Job diariamente. Referencia
Clase SPWeeklySchedule: Ejecuta el Timer Job semanalmente. Referencia
Clase SPMonthlySchedule: Ejecuta el Timer Job mensualmente. Referencia
Clase SPYearlySchedule: Ejecuta el Timer Job una vez al año. Referencia
El código a incluir en el método FeatureDeactivating para desinstalarlo sería:
Una vez hecho esto ya solo queda activar la característica.
Para comprobar que el Timer Job está funcionando iríamos a la Administración Central de SharePoint > Supervisión > Trabajos del temporizador > Revisar definiciones de trabajo. Una vez dentro buscamos dentro de la lista nuestro Timer Job.
Los Timer Jobs son manejados a través de un servicio de Windows llamadoSharePoint 2010 Timer, el cuál por defecto esta iniciado.
SharePoint 2010 dispone por defecto de bastantes Timer Jobs. Para una completa descripción de estos Timer Jobs visitad el siguiente enlace de la MSDN:
Timer Job reference
Ahora vamos a explicar cómo crear nuestro Timer Job. En el ejemplo vamos a crear un Timer Job el cuál cada 5 minutos minuto va a escribir un registro en la lista de Tareas.
Lo primero que debemos de hacer es abrir Visual Studio 2010 y crear un Proyecto vacío de SharePoint.
En la pantalla de qué tipo de solución crear elegimos la opción Implementar como solución de granja de servidores.
Una vez creado el proyecto agregamos una clase que será la definición de nuestro Timer Job. Esta clase debe heredar de la clase SPJobDefinitionubicada en el espacio de nombres Microsoft.Sharepoint.Administration.
Code:
Agregamos 2 constructores a la clase. El primero sin parámetros y el segundo con parámetros que será el cuál usaremos.
Code:
Después debemos redefinir el método Execute que es donde deberemos incluir nuestra lógica, en nuestro caso escribir un registro en la lista de Tareas.
Code:
El siguiente paso es crearnos una característica cuyo ámbito debe serWebApplication, es decir la caraterística estará activada para todos los sitios de la aplicación web. Para cambiar el ámbito pulsar dos veces sobre el nombre de la característica y nos aparecerá la ventana de propiedades.
Una vez cambiado el ámbito a la característica le agregamos un receptor de eventos. Lo que vamos a hacer es al activar la característica instalar el Timer Job y al desactivarla eliminar el Timer Job.
El código a incluir en el método FeatureActivated para instalar el Timer Job sería el siguiente:
Code:
Respecto cada cuanto está programado que se ejecute el Timer Job decir que en el ejemplo decimos que se debe ejecutar cada 5 minutos, por ello usamos la claseSPMinuteSchedule.
La cuestión es que podemos hacer que el Timer Job se ejecute en otro espacio de tiempo, por lo cual debemos usar otras clases diferentes a SPMinuteSchedule.
Todas las clases de las que disponemos son:
Clase SPOneTimeSchedule: Ejecuta el Timer Job en un rango de tiempo especificado. Referencia
Clase SPMinuteSchedule: Ejecuta el Timer Job en un número determinado de minutos (cada minuto o cada 200 minutos por ejemplo). Referencia
Clase SPHourlySchedule: Ejecuta el Timer Job cada hora. Referencia
Clase SPDailySchedule: Ejecuta el Timer Job diariamente. Referencia
Clase SPWeeklySchedule: Ejecuta el Timer Job semanalmente. Referencia
Clase SPMonthlySchedule: Ejecuta el Timer Job mensualmente. Referencia
Clase SPYearlySchedule: Ejecuta el Timer Job una vez al año. Referencia
El código a incluir en el método FeatureDeactivating para desinstalarlo sería:
Code:
Una vez hecho esto ya solo queda activar la característica.
Para comprobar que el Timer Job está funcionando iríamos a la Administración Central de SharePoint > Supervisión > Trabajos del temporizador > Revisar definiciones de trabajo. Una vez dentro buscamos dentro de la lista nuestro Timer Job.
No hay comentarios:
Publicar un comentario