2009-05-11 9 views
11

Sto eseguendo .NET su una finestra di Windows e mi piacerebbe avere una funzione eseguita ogni notte a mezzanotte. Naturalmente dal momento che HTTP senza stato e Windows non ha una funzione di tipo "cron job" (che io sappia), dovrò visitare il mio sito ogni sera a mezzanotte o semplicemente aspettare che un utente visiti il ​​sito per fare affidamento in corso di aggiornamento.Come emulare i lavori cron su un server Windows?

C'è un'alternativa a ciò che posso creare dove qualcosa verrà eseguito automaticamente in un determinato momento?

Grazie

+0

Grazie per la modifica, Milen. – Adrien

risposta

7

Se nessuna delle altre risposte funziona per voi, qui è un'opzione:

Ci sono un sacco di servizi di monitoraggio di server fuori ci sarà una chiamata http al tuo sito ad intervalli regolari (ogni minuto se vuoi). È possibile ottenere intervalli di 5 minuti gratuitamente su alcuni di essi.

Creare una pagina protetta da password, che esegue la funzione (se non è stata ancora eseguita oggi) e indicare tale servizio.

Almeno in questo modo non dovrai scrivere nulla di aggiuntivo, e puoi stare tranquillo sapendo che non si basa sulla tua macchina domestica.

+0

Sto usando pingdom per questo scopo .Come, c'è qualche ragione per la pagina protetta da password? – faulty

+1

Solo per motivi di sicurezza, quindi qualche persona anonima non può chiamare la tua funzione più frequentemente di te Se vuoi conoscere l'url: – Nik

12

sono abbastanza sicuro che task scheduler di Windows' in grado di fare la maggior parte delle cose che può fare cron. Ma potrei mancare qualcosa.

Edit: raggiunto a Impostazioni -> Pannello di controllo -> Operazioni pianificate

+0

L'Utilità di pianificazione è la strada da percorrere. –

+0

ho parlato con il mio ospite e hanno detto che non hanno nulla di simile ... c'è qualcosa che posso scrivere in codice? – Jason

+0

qualcuno sa come fare questo hosting w/godaddy.com? – Jason

0

Utilizzare la classe Timer per creare un timer che chiama periodicamente un metodo da eseguire.

Un timer statico può essere avviato nell'evento Application_Start nella classe Global. Poiché il timer utilizza un intervallo anziché un tempo assoluto, è necessario calcolare l'intervallo di tempo fino a mezzanotte e impostare la proprietà Interval di conseguenza.

0

Sembra GoDaddy has provisions for this, ma non v'è più di un modo per farlo: Quando si installa Drupal che si ha la necessità di istituire un job cron, e ho scoperto che i membri del progetto hanno documentato questo passaggio throughly . Vai a http://drupal.org/cron per ulteriori informazioni e ricorda di leggere http://drupal.org/node/31506 per informazioni specifiche di Windows. Se tutto il resto fallisce, google per "web cron job" e usa un servizio commerciale "cron job". Scegli attentamente, non farti derubare.

+0

che il primo collegamento è solo per le configurazioni di Linux, l'ho visto. non ho drupal installato – Jason

+0

Questa non è una soluzione specifica per drupal, è solo che i ragazzi Drupay hanno fatto un ottimo lavoro documentando ampiamente le alternative. – codehead

5

Jeff Attwood a un certo punto nel podcast ha menzionato un attacco sporco per utilizzare il Callback di scadenza cache per simulare questo.

Inseriva un elemento nella cache di .Net, con una scadenza impostata a 2 ore, e un callback per essere chiamato una volta scaduto l'elemento, e quello era il suo cron.

penso che questo è stato l'articolo:
http://www.codeproject.com/KB/aspnet/ASPNETService.aspx?display=Print

Fa schifo se mi chiedete, ma per una soluzione di hosting condiviso, non riesco a pensare a qualcosa di molto meglio.

Inoltre, ci sono i servizi di cron esterni che ti danno un URL e lo faranno "ping" regolarmente, come: (queste non sono liberi)
http://webcron.org/
http://www.webbasedcron.com/

+0

interessante ... anche se nessuno dei due link in basso che hai postato sono gratuiti: \ – Jason

+0

Oops! Webcron.org È stato libero, di sicuro, l'ho usato in passato. Correggere la risposta, grazie. –

+0

Puoi anche utilizzare pingdom, che è anche gratuito – faulty

1

si può anche dare un'occhiata a quarzo.Net http://quartznet.sourceforge.net/ che è uno schedulatore

+0

ho guardato questo, ma è solo per le app desktop o è qualcosa che puoi eseguire su un sito Web? Io non vedo come funzionerebbe su un sito web ... – Jason

0

Anche io sto affrontando lo stesso problema. Voglio eseguire ASP.NET con MSSQL su GoDaddy. Ma non hanno un compito di programma per l'hosting di Windows. Dopo aver letto il post, ho fatto il mio google e ho trovato questo web programmatore gratuito web cron:

Ho appena provato e funziona perfettamente ... beh quasi. Il lavoro scade tra 1 anno.

http://www.setcronjob.com/

Speranza che aiuta.

+0

risorsa piuttosto interessante, anche se l'acct libero scade dopo 3mos non a 1 anno, non male se non ti interessa un po 'di manutenzione – Jason

+0

opps, sì è 3mth. per gli acconti pagati Ma, almeno, possiamo ricreare manualmente i cron job ogni 3 giorni Comunque, per il 1 anno di scadenza, il suo minimo $ 5 per 10 lavori cron. Non male :) qualcun altro ha altri siti di lavoro di cron gratuiti da consigliare? –

0

ricerca di una risposta alla stessa domanda, ho trovato this post (quartz-net-with-asp-net) con le istruzioni di installazione per Quartz.NET ("Enterprise Job Scheduler for .NET Platform", dal loro sito) anche da dentro un'applicazione ASP.NET.

Aggiunto qui principalmente per riferimento.

Problemi correlati