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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top