programmare la pagina web
-
05-07-2019 - |
Domanda
Devo programmare diverse pagine diverse su più siti diversi da eseguire in determinati orari, di solito una volta a notte. Esiste un software là fuori per farlo? sarebbe bello se chiamasse la pagina e poi registrasse la risposta e se la pagina chiamata avesse successo o meno. Stavo usando Helm su una scatola diversa e aveva un bel modulo Web Scheduler ma Helm non è un'opzione per questa macchina. Questa è una finestra di Windows Server 2008.
Soluzione
Utilizziamo attività pianificate standard che chiamano un file bat che chiama un file VBS. So che non è la soluzione più elegante di sempre, ma funziona costantemente.
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
Il codice nel file VBS è quasi sicuramente eccessivo e sottoscritto, ma funzionale comunque.
Altri suggerimenti
Che ne dici di wget.exe e l'utilità di pianificazione?
Il codice fornito nell'esempio superiore presenta alcuni problemi con l'attività attiva durante il caricamento del sito Web. Il sito Web sta caricando 2 minuti ma l'attività è già stata eseguita in 1 secondo, il che comporta un problema quando lo si esegue ogni 5 minuti. Se il sito Web carica 10 minuti e l'attività è già stata eseguita in 1 secondo, verrà eseguita di nuovo che mentre voglio attendere il tempo di caricamento del sito Web.
Quindi quello che ho fatto è il seguente (questo script manterrà l'attività occupata fino a quando il sito Web si sta caricando):
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 non è necessario pianificarli dalla stessa casella, dai un'occhiata a Sito di Zoho24x7 .
Inizialmente è progettato per monitorare i siti Web, ma ha un'opzione per registrare le risposte previste e confrontarle in modo da poterle utilizzare per i tuoi scopi con la sicurezza aggiuntiva di un sito esterno. Non è gratuito, tranne per pochi URL.
Sono altri provider simili ma sembravano abbastanza belli l'ultima volta che ho cercato sul web su questo argomento.
Ho finito per usare questo script e l'Utilità di pianificazione, semplice e funziona alla grande:
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
Quindi lo chiamo semplicemente con l'URL che voglio eseguire come argomento:
Simile (anche se forse più potente) è netcat e il suo porta windows
fyi - wget è una licenza standard GNU, quindi non sono sicuro che sia utilizzabile per la maggior parte dei sistemi commerciali / proprietari.
Uso http://scheduler.codeeffects.com . Molto efficace e affidabile, nessuna lamentela.