webpage cronograma
-
05-07-2019 - |
Pergunta
Eu preciso agendar várias páginas diferentes em vários locais diferentes a serem executados em determinados momentos, geralmente uma vez por noite. Existe algum software para fora lá para fazer isso? seria bom se ele chamou a página e, em seguida, gravou a resposta e se a página chamada foi executado com sucesso ou não. Eu estava usando Helm em uma caixa diferente e tinha um bom módulo Web Scheduler, mas Helm não é uma opção para esta máquina. Esta é uma caixa de janela Server 2008.
Solução
Nós usamos tarefas padrão programados que exigem um arquivo de morcego que chama um arquivo VBS. Eu sei que não é a solução mais elegante que nunca, mas sempre funciona.
BAT:
webrun.vbs http://website.com/page.aspx
VBS:
dim URL, oArgs
Set oArgs = WScript.Arguments
if oArgs.Count = 0 then
msgbox("Error: Must supply URL")
wscript.quit 1
end if
URL = oArgs(0)
on error resume next
Set objXML = CreateObject("MSXML2.ServerXMLHTTP")
if err then
msgbox("Error: " & err.description)
wscript.quit 1
end if
' Call the remote machine the request
objXML.open "GET", URL, False
objXML.send()
' return the response
'msgbox objXML.responSetext
' clean up
Set objXML = Nothing
O código no arquivo VBS é quase certamente tanto exagero e subscritas, mas nada-a-menos funcional.
Outras dicas
Como sobre wget.exe e o agendador de tarefas?
O código dado no exemplo superior tem alguns problemas com a tarefa ser ativo durante o carregamento do site. O site está carregando 2 minutos, mas a tarefa já é feito em 1 segundo, o que traz um problema quando você executá-lo a cada 5 minutos. Se o site carrega 10 minutos e a tarefa já é feito em 1 segundo ele wil executar novamente que, enquanto eu quero que esperar o tempo de carregamento do site.
Então, o que eu tenho feito é o seguinte (este script irá manter a tarefa ocupado enquanto o site é de carga):
dim URL, oArgs, objXML
Set oArgs = WScript.Arguments
URL = oArgs(0)
on error resume next
Set objXML = CreateObject("Microsoft.XMLDOM")
objXML.async = "false"
objXML.load(URL)
Set objXML = Nothing
Se não é um requisito para programá-los a partir da mesma caixa, ter um olhar para do Zoho Site24x7 .
Ele é inicialmente projetado para web sites do monitor, mas tem uma opção para gravar respostas esperadas e compará-los para que você possa usá-lo para o seu propósito com a segurança de um site externo. Não é gratuito no entanto, exceto para alguns urls.
Eles são outros prestadores semelhantes, mas eles parecia muito bom última vez que eu procurei na web sobre este tema.
Acabei usando este script e Agendador de Tarefas, simples e funciona muito bem:
Call LogEntry()
Sub LogEntry()
'Force the script to finish on an error.
On Error Resume Next
'Declare variables
Dim objRequest
Dim URLs
URLs = Wscript.Arguments(0)
Set objRequest = CreateObject("Microsoft.XMLHTTP")
'Open the HTTP request and pass the URL to the objRequest object
objRequest.open "POST", URLs, false
'Send the HTML Request
objRequest.Send
Set objRequest = Nothing
WScript.Quit
End Sub
Então eu apenas chamá-lo com o URL que eu quero correr como um argumento:
Semelhante (embora possivelmente mais poderosa) é netcat e sua porta janelas
FYI -. Wget é GNU licença padrão, então eu não tenho certeza que é utilizável para a maioria dos sistemas comerciais / proprietárias
Eu uso http://scheduler.codeeffects.com . Muito eficaz e confiável, não se queixa.