Por diversas vezes senti a necessidade de executar código de uma determinada página mais do que uma vez por dia ou por intervalos de tempo de forma automática (de 10 em 10 minutos ou de hora a hora). A zona de Scheduled tasks do plesk é uma boa opção, mas não corre páginas aspx ou php directamente, apenas comandos internos, batch files ou executáveis. Por isso parti para a pesquisa e aqui está a solução:
O objectivo é criar um mini browser em vbscript que aceite como parametro a página que queremos correr. Para quem nunca pegou em vbscript não precisa de se preocupar porque o código vem já já a seguir:
Abra um ficheiro de texto e grave-o com o nome “browser.vbs” colocando-o com o seguinte código:
Option Explicit
On Error Resume Next
' Declarar as nossas variaveis
Dim objWinHttp, strURL
' Vai buscar o endereço para correr aos argumentos passados.
strURL = WScript.Arguments(0)
' Se desejarem podem colocar directamente o endereço a correr...
'strURL = "http://localhost/ScheduleMe.asp"
Set objWinHttp = CreateObject("WinHttp.WinHttpRequest.5")
objWinHttp.Open "GET", strURL
objWinHttp.Send
' Verifica se a resposta foi 200
' que é a esperada para um request de uma página bem sucedido
' http://www.asp101.com/resources/httpcodes.asp
If objWinHttp.Status <> 200 Then
' Se não for 200 é porque foi mal sucedido... E poderá ser verificado
Err.Raise 1, "HttpRequester", "Invalid HTTP Response Code"
End If
Muito bem… agora é só fazer o upload deste script para o servidor e adicionar uma nova tarefa no plesk, indicando o caminho para o nosso vbscript C:\inetpub\vhosts\endereço.pt\httpdocs\caminho\browser.vbs e passar por argumento o endereço da página que queremos correr http://programatu.wordpress.com/
Se este artigo foi util, comenta.