2009-08-25 14 views
6

Tengo un trabajo del temporizador que se ha implementado en un servidor con varias interfaces web.No se invocan los trabajos del temporizador de SharePoint

  • Este trabajo del temporizador lee su configuración desde un Almacén de objetos jerárquicos.
  • Este trabajo del temporizador está programado para ejecutarse diariamente en el servidor.

Pero el problema es que este trabajo del temporizador no se invoca a diario. Implementé el registro de eventos en el método Execute() del trabajo del temporizador, pero no veo que se generen registros.

  • Alguna idea de lo que podría causar un trabajo del temporizador no se recogió para su ejecución por el servicio de temporizador de SharePoint? ¿Cómo puedo solucionar este problema?

  • ¿Hay algún problema para ejecutar trabajos de temporizador en servidores desde múltiples interfaces? ¿El trabajo del temporizador se ejecutará en todas las interfaces web, o cualquiera de ellas arbitrariamente? ¿Cómo saber qué máquina tendrá mis registros de eventos?

  • Esto podría ser una pregunta estúpida, pero ¿tener varios frontales para equilibrar la carga afecta la forma en que se comportan las Tiendas de objetos jerárquicos?

EDIT:

Uno de los comentaristas, Sean McDounough, (Sean Gracias !!) hizo un muy buen punto de que:

"si o no el trabajo del temporizador se ejecuta en todas las WFE serán una función del valor de enum SPJobLockType que especificó en el constructor. Usar el valor "None" significa que el trabajo se ejecutará en todas las WFE.

Ahora, mi tarea de temporizador es responsable de enviar correos periódicos a una lista de usuarios. Actualmente, se marca como SPJobLockType.Job"

  • Si cambio a este SPJobLockType.None, ¿esto significa que mi trabajo del temporizador se ejecutará en todo el WFE por separado? (Esto no es deseado, lo hará el spam todos los usuarios con múltiples correos electrónicos)

  • o significa que el trabajo del temporizador se ejecutará en cualquiera de la WFE, arbitrariamente?

Respuesta

9

intente reiniciar el servicio de temporizador de SharePoint desde la línea de comandos usando NET STOP SPTIMERV3 seguido de un NET START SPTIMERV 3. Supongo que el servicio del temporizador se está ejecutando con una versión anterior de su ensamblado .NET. El servicio de temporizador no recarga automáticamente ensamblados cuando actualiza la solución WSP.

+4

Excelente punto por Lars, y uno que comúnmente atrapa a los desarrolladores (tanto nuevos como experimentados) que trabajan con el servicio de temporizador. Un punto adicional para usted, ashwnacharya: si el trabajo del temporizador se ejecuta en todas las WFEs será una función del valor enum SPJobLockType que especificó en el constructor. El uso de un valor de "Ninguno" significa que el trabajo se ejecutará en todas las WFE. Sin embargo, un valor de "Trabajo" significa que se ejecutará en un solo servidor: aquel en el que envió el trabajo (a menos que haya indicado un SPServer específico en su constructor). –

+0

¿Asumo que tenías el TimerJopb ejecutándose en tu máquina de desarrollo? Si no, mira mi pregunta en http://stackoverflow.com/questions/985581/debugging-sharepoint-timer-jobs, para ver si algo sale mal ... – Colin

+1

Literalmente salvaste mi vida. – ragebiswas

2

Para ello, siga estos pasos:

  • detener el servicio de temporizador.
  • Haga clic en Inicio, señale Herramientas administrativas y luego haga clic en Servicios.
  • Haga clic con el botón derecho en Windows SharePoint Services Timer y luego haga clic en Detener o Reiniciar servicio.

Me ayudó URL.

Cuestiones relacionadas