2010-07-13 16 views

risposta

11

Windows non ha Cron (è il programma di pianificazione delle attività principale per i sistemi Linux). La versione per Windows è Task Scheduler. This question consiglia di utilizzare il comando at.

In modo che Cron non abbia nulla a che fare con l'installazione di Apache, Mysql, PHP Non penso sia possibile testare in modo affidabile i cronjob creati per il Cron di Linux in Windows (forse con Cygwin).

+1

: Il programma corrente per utilizzare l'utilità di pianificazione è 'schtasks',' at' è stato deprecato per alcuni anni in quanto rappresenta solo le funzionalità presenti nelle versioni precedenti dell'utilità di pianificazione. – Joey

-1

Cosa intendi con "un cron job"? Su un sacco di siti web c'è una pagina speciale come "cron.php", che viene colpito periodicamente, di norma in questo modo:

0 * * * * wget http://example.org/cron.php 

In questo caso è sufficiente per colpire manualmente il file php cron per simulare il comportamento.

+3

"un cron job" significa cron – Starx

+0

Beh, volevo dire che cosa sta facendo il cron job? In termini di sito Web "cron" è normalmente sinonimo di "lavoro che viene eseguito occasionalmente", che può essere ottenuto con l'utilità di pianificazione o manualmente. Se hai letteralmente bisogno di testare un crontab, questo è un problema diverso. – ZoFreX

+0

Ok, allora come usare l'utilità di pianificazione per eseguire uno script PHP in un certo intervallo di tempo? – Starx

2

Installa cron (sì, è available for Windows).

Non vorrei voglio farlo su Windows. Probabilmente starai meglio acquistando una copia di VirtualBox e creando qualcosa che assomigli al tuo ambiente di produzione per lo sviluppo.

+0

Non penso che questo risponda alla domanda. wamp è per windows e cron è per unix/linux quindi basta dirgli di installare cron non ha alcun senso. quello che probabilmente intendeva era suggerire qualche alternativa a cron per windows –

+0

@ChetanPaliwal - Un sacco di software UNIX gira su Windows. Ad esempio, Cron: http://cronw.sourceforge.net/ – Quentin

+0

sì, ma solo dire "installa cron" come risposta senza dare alcun link o riferimenti, a mio parere, è (non era) un buon modo per rispondere alla nota –

2

Basta eseguire il lavoro dalla riga di comando. È il lavoro che vuoi testare, non cron stesso. Se avete bisogno di averlo eseguito a intervalli periodici per simulare cron, quindi utilizzare il Windows "Operazioni pianificate" impianto

0

Prova questo commnad

<?php 

echo exec('0 13 * * * D:\wamp\bin\php -f D:\wamp\www\be.php'); 

?> 
+0

qual è il codice all'interno di be.php – Rathinam

0

<meta http-equiv="refresh" content="0; url=http://localhost/myproject/cron.php" />

istituito un meta referesh subito: contenuto = 0 ogni 5 secondi: contenuto = 5

+3

Questo è il reindirizzamento non il processo Cron. Lavoro Cron, esegui silenziosamente. L'intero concetto è di essere in grado di eseguire alcune attività, senza l'intervento dell'utente. Questo aprirà la pagina nella finestra ed elaborerà. – Starx

5

è possibile eseguire lo script direttamente dall'URL, significa che se si desidera eseguire script cron_test.php t dall'impostazione di cron e si desidera testare il risultato per lo stesso, quindi è possibile eseguire direttamente questo file da localhost come http://www.localhost/XXXX/cron_test.php.

1

È possibile cron cron i lavori in ambiente Windows con una sola riga. Ho quasi passato le mie 5 ore, quindi voglio condividere con altri è un compito.

  • Nel programma, fornire il percorso php.exe, con la mia installazione è c: \ wamp \ bin \ php \ php5.3.5 \ php.exe.
  • In secondo luogo è necessario inserire il percorso assoluto del file, che si desidera eseguire. -f c:\wamp\www\foo\foo.php nell'argomento

Quindi è completo. Non è necessario installare nulla.

2

È possibile eseguire questo:

set_time_limit(0); 
ignore_user_abort(true); 
while (1) 
{ 
    //your code here.... 
    sleep($timetowait); 
} 

è possibile chiudere il browser lo script continuerà

set_time_limit(0); rendere il vostro lavoro lo script senza limiti di tempo

sleep($timetowait); determinare il tempo di attesa prima dell'esecuzione il prossimo ciclo while()

ignore_user_abort(true); le t lo script continua anche se il browser è chiuso

while(1) è un ciclo infinito, quindi questo non si fermerà mai prima di uscire da wamp.

+0

Per perfezionare il mio voto in su - questo è un file .php che viene attivato dall'esecuzione in un browser. Farà il lavoro, ma tieni a mente che lascerà in esecuzione alcuni processi Apache. –

7

È possibile creare una pagina html e aprirla sul browser. La funzione javascript setInterval chiamerà per periodi specificati.

Di seguito è riportato il codice per eseguire questa operazione. Specificare l'intervallo (5000 per esempio che passa ogni 5 secondi.)

<html> 
<head> 
    <title>Cron</title> 
</head> 
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<body> 
<h1>Cron page</h1> 
<script type="text/javascript"> 
    setInterval(function(){ 
     $.get('http://localhost/test/test.php', function(data) { 
      console.log(data); 
     }); 
    }, 5000); 
</script> 
</body> 
</html> 

Nota: Per evitare CORS si dovrebbe chiamare ajax dalla stesso host o consentire CORS dal lato server.