programar página web
-
05-07-2019 - |
Pregunta
Necesito programar varias páginas diferentes en varios sitios diferentes para que se ejecuten a ciertas horas, generalmente una vez por noche. ¿Hay algún software por ahí para hacer esto? sería bueno si llamara a la página y luego registrara la respuesta y si la página llamada se ejecutó con éxito o no. Estaba usando Helm en una caja diferente y tenía un buen módulo de Programador Web, pero Helm no es una opción para esta máquina. Este es un cuadro de Windows Server 2008.
Solución
Usamos tareas programadas estándar que llaman a un archivo bat que llama a un archivo VBS. Sé que no es la solución más elegante de la historia, pero siempre 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
El código en el archivo VBS es casi seguro tanto exagerado como suscrito, pero funcional, sin embargo.
Otros consejos
¿Qué te parece wget.exe y el programador de tareas?
El código dado en el ejemplo superior tiene algunos problemas con la tarea activa durante la carga del sitio web. El sitio web se está cargando 2 minutos, pero la tarea ya se realizó en 1 segundo, lo que genera un problema cuando se ejecuta cada 5 minutos. Si el sitio web se carga 10 minutos y la tarea ya está terminada en 1 segundo, se ejecutará nuevamente mientras yo quiero que espere el tiempo de carga del sitio web.
Entonces, lo que he hecho es lo siguiente (esta secuencia de comandos mantendrá la tarea ocupada mientras el sitio web se esté cargando):
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
Si no es un requisito programarlas desde el mismo cuadro, consulte site24x7 de Zoho .
Inicialmente está diseñado para monitorear sitios web, pero tiene la opción de grabar las respuestas esperadas y compararlas para que pueda usarlas para su propósito con la seguridad adicional de un sitio externo. Sin embargo, no es gratis, excepto por algunas direcciones URL.
Son otros proveedores similares, pero se vieron bastante bien la última vez que busqué en la web sobre este tema.
Terminé usando este script y el Programador de tareas, simple y funciona muy bien:
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
Luego lo llamo con la URL que quiero que se ejecute como argumento:
Similar (aunque posiblemente más potente) es netcat y su puerto de windows
fyi - wget es una licencia estándar de GNU, por lo que no estoy seguro de que sea utilizable para la mayoría de los sistemas comerciales / propietarios.
Utilizo http://scheduler.codeeffects.com . Muy efectivo y confiable, no hay quejas.