Skip to main content
       
Portugal
MOSSPT
 
   
Go Search
 

Portugal > MOSSPT > Posts > Timer Jobs em Sharepoint
Timer Jobs em Sharepoint
O Sharepoint disponibiliza um "Job Scheduler" onde podemos adicionar os nossos jobs. No meu caso utilizei um para tratar uma lista de sharepoint onde pedidos de utilizadores eram colocados.
 
A estrutura está bem definida e com uma solution de exemplo no blog do Andrew Connell (

http://andrewconnell.com/blog/articles/CreatingCustomSharePointTimerJobs.aspx).

 

A solução passa por criar um solution package com uma feature que instala o Job.

 

A parte mais complexa passa pela instalação e pelo debug. Para a instalação, criei um pequeno script que me deu uma boa ajuda. Ele efectua os seguintes passos:

 

 

@ECHO OFF
cls

REM Precisei da força bruta pois em algumas sessões de debug, o debugger não largava o processo.

 

ECHO RESTARTING OWSTIMER...
TASKKILL /F /IM OWSTIMER.exe /T

REM Start to serviço

net start sptimerv3

 

REM Limpar a versão da feature existente

ECHO Deactivating Feature...
stsadm -o deactivatefeature -url <o_meu_site> -id <GUID>

 

REM Limpar a versão da solution existente

ECHO Retracting Solution...
stsadm -o retractsolution -name <o_meu_sol_pkg.wsp> -immediate

 

REM IMPORTANTE pois o passo anterior é assíncrono. temos de forçar a execução dos admin jobs

ECHO Forcing Admin Jobs to execute...
stsadm -o execadmsvcjobs

 

REM Xau versão velha

ECHO Deleting Solution...
stsadm -o deletesolution -name <o_meu_sol_pkg.wsp>

 

REM Pois... tive algumas versões com mais personalidade

ECHO IISRESETING...
IISRESET

 

REM OK, a nova versão cá vai

ECHO Adding new solution...
stsadm -o addsolution -filename <o_meu_sol_pkg.wsp>

 

REM Deploy do novo solution package

ECHO Deploying new solution...
stsadm -o deploysolution -name <o_meu_sol_pkg.wsp> -immediate -allowgacdeployment

 

ECHO Forcing Admin Jobs to execute...
stsadm -o execadmsvcjobs

 

REM finalmente activar a feature

ECHO Activating new Feature
stsadm -o activatefeature -url <o_meu_site> -id <GUID>

@ECHO oN

 

 

Para o debug, têm de fazer attach ao processo OWSTIMER.EXE e esperar que o job seja executado. No exemplo do Andrew, o Job é instalado com um delay de 5 min. Para mim deu-me jeito alterar para 2 ou 3 minutos (depende do tempo que demorarem numa sessão de debug). Podem fazê-lo no ficheiro TaskLoggerJobInstaller.cs. Procurem a seguinte linha:

 

schedule.Interval = 5;

 

Coloquem o nº de minutos que pretendem ter de delay e já está!

 

 

 

Truques finais:

  • Para que o job funcione, o serviço "Windows SharePoint Services Timer" tem de estar a correr.
  • Para verem se o job foi correctamente instalado, vão a "Central Administration > Operations > Timer Job Definitions". O job deve aparecer na lista. Não aparece? Será que ficou esquecido o passo de activação da feature?
  • Quando acabarem de brincar, não se esqueçam de desactivar o job, ou a vossa lista vai ficar atulhada!!! Vão a "Central Administration > Operations > Timer Job Definitions", cliquem no job e em seguida no botão "Disable"
  • Para verificarem o estado de execução do job, vão a "Central Administration > Operations > Timer Job Status". Não entrem já em pânico se o job não aparecer na lista. Ele só irá aparecer depois de ser executado a 1ª vez!

Divirtam-se e comentem as vossas experiências!!

Comments

There are no comments yet for this post.
 
About Us Contact Us