Question

Je dois programmer plusieurs pages différentes sur plusieurs sites différents à des heures précises, généralement une fois par nuit. Existe-t-il un logiciel pour le faire? ce serait bien si elle appelait la page puis enregistrait la réponse et si la page appelée était exécutée avec succès ou non. J'utilisais Helm sur un autre boîtier et il contenait un module Web Scheduler intéressant, mais Helm n'est pas une option pour cette machine. Ceci est une boîte de Windows Server 2008.

Était-ce utile?

La solution

Nous utilisons des tâches planifiées standard qui appellent un fichier bat qui appelle un fichier VBS. Je sais que ce n’est pas la solution la plus élégante de tous les temps, mais cela fonctionne toujours.

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  

Le code dans le fichier VBS est presque assurément à la fois excessif et souscrit, mais fonctionnel néanmoins.

Autres conseils

Que diriez-vous de wget.exe et le planificateur de tâches?

Le code donné dans l'exemple ci-dessus présente des problèmes car la tâche est active pendant le chargement du site Web. Le site Web se charge en 2 minutes mais la tâche est déjà terminée en 1 seconde, ce qui pose un problème lorsque vous l'exécutez toutes les 5 minutes. Si le site Web charge 10 minutes et que la tâche est déjà terminée en 1 seconde, il exécutera à nouveau que, bien que je veuille attendre le temps de chargement du site Web.

Donc, voici ce que j'ai fait (ce script gardera la tâche occupée tant que le site Web sera chargé):

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

S'il n'est pas nécessaire de les programmer depuis la même boîte, consultez le site 24x7 de Zoho .

Initialement conçu pour surveiller les sites Web, il dispose d’une option permettant d’enregistrer les réponses attendues et de les comparer afin que vous puissiez les utiliser à votre guise avec la sécurité supplémentaire d’un site externe. Ce n'est pas gratuit, sauf pour quelques URL.

Ce sont d'autres fournisseurs similaires, mais ils étaient plutôt beaux la dernière fois que j'ai effectué une recherche sur le Web à ce sujet.

J'ai fini par utiliser ce script et ce planificateur de tâches, simple et qui fonctionne très 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

Ensuite, je l'appelle simplement avec l'URL que je veux exécuter en tant qu'argument:

Un élément similaire (bien que probablement plus puissant) est netcat et son port Windows

fyi - wget est une licence standard GNU, je ne suis donc pas sûr que ce soit utilisable pour la plupart des systèmes commerciaux / propriétaires.

J'utilise http://scheduler.codeeffects.com . Très efficace et fiable, pas de problème.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top