2010-07-13 6 views

Répondre

11

Windows n'a pas Cron (c'est le programme principal d'ordonnancement des tâches pour les systèmes Linux). La version Windows pour cela est le Task Scheduler. This question recommande d'utiliser la commande at. Pour que Cron n'ait rien à voir avec l'installation d'Apache, Mysql, PHP, je ne pense pas qu'il soit possible de tester de manière fiable les cronjobs créés pour Linux Cron dans Windows (peut-être avec Cygwin).

+1

: Le programme actuel pour utiliser le planificateur de tâches est 'schtasks',' at' est obsolète depuis quelques années car il ne représente que les fonctionnalités présentes dans les anciennes versions du planificateur de tâches. – Joey

-1

Qu'entendez-vous par "un travail de cron"? Sur beaucoup de sites il y a une page spéciale comme « cron.php » qui est frappé périodiquement, normalement comme ceci:

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

Dans ce cas, il vous suffit de frapper manuellement votre fichier php cron pour simuler le comportement.

+3

"un travail de cron" signifie cron – Starx

+0

Eh bien ce que je voulais dire, c'est que fait le travail de cron? En termes de site Web "cron" est normalement synonyme de "travail qui s'exécute occasionnellement", ce qui pourrait être réalisé avec le planificateur de tâches ou en le frappant manuellement. Si vous avez vraiment besoin de tester un crontab, c'est un problème différent. – ZoFreX

+0

Ok, alors comment utiliser le planificateur de tâches pour exécuter un script PHP dans un certain intervalle de temps? – Starx

2

Installez cron (oui, c'est available for Windows).

Je ne voudrais pas vouloir pour faire cela sur Windows cependant. Il vaut probablement mieux copier une copie de VirtualBox et créer quelque chose qui ressemble mieux à votre environnement de production.

+0

Je ne pense pas que cela répond à la question. wamp est pour windows et cron est pour unix/linux donc juste lui dire d'installer cron n'a aucun sens. ce qu'il voulait probablement dire était de suggérer une alternative à cron pour les fenêtres –

+0

@ChetanPaliwal - Beaucoup de logiciels UNIX fonctionnent sous Windows. Par exemple, Cron: http://cronw.sourceforge.net/ – Quentin

+0

oui mais juste dire 'installer cron' comme réponse sans donner de liens ou de références, à mon avis, est (était) pas un bon moyen de répondre –

2

Exécutez simplement le travail à partir de la ligne de commande. C'est le travail que vous voulez tester, pas cron lui-même. Si vous avez besoin d'avoir exécuter à intervalles réguliers pour simuler Cron, puis utilisez l'installation de Windows « Tâches planifiées »

0

Essayez cette commnad

<?php 

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

?> 
+0

Quel est le code à l'intérieur de be.php – Rathinam

0

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

mis en place une méta referesh immédiatement: content = 0 toutes les 5 secondes: content = 5

+3

Il s'agit d'une redirection non Cron travail. Cron travail, effectuer en silence. Le concept entier est d'être en mesure d'effectuer une tâche, sans intervention de l'utilisateur. Cela va ouvrir la page dans la fenêtre et le processus. – Starx

5

Vous pouvez exécuter votre script directement depuis l'URL, ce qui signifie que vous souhaitez exécuter le script cron_test.php t de réglage cron et vous voulez tester le résultat pour le même, vous pouvez directement exécuter ce fichier de localhost comme http://www.localhost/XXXX/cron_test.php.

1

Vous pouvez simplement cron vos travaux dans l'environnement Windows avec une seule ligne. J'ai presque passé mes 5 heures donc je veux partager avec d'autres est de faire une tâche.

  • Dans le programme donne chemin php.exe, avec mon installation, il est c: \ wamp \ bin \ php \ php5.3.5 \ php.exe.
  • Ensuite, vous devez placer le chemin absolu du fichier que vous voulez exécuter. -f c:\wamp\www\foo\foo.php dans l'argument

Alors c'est terminé. Il n'y a pas besoin d'installer quoi que ce soit.

2

Vous pouvez exécuter ceci:

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

Vous pouvez fermer votre navigateur et le script continuera

set_time_limit(0); faire votre travail de script sans limitation de temps

sleep($timetowait); déterminer le temps d'attente avant l'exécution la prochaine boucle de while()

ignore_user_abort(true); le t le script continue même si le navigateur est fermé

while(1) est une boucle infinie, donc cela ne s'arrêtera jamais jusqu'à ce que vous quittiez wamp.

+0

Pour affiner ma mise à jour - il s'agit d'un fichier .php qui est déclenché en cours d'exécution dans un navigateur. Cela fera l'affaire, mais gardez à l'esprit que certains processus Apache seront en cours d'exécution. –

7

Vous pouvez créer une page HTML et l'ouvrir dans le navigateur. La fonction javascript setInterval appelle pendant des périodes spécifiées.

Voici le code pour ce faire. Indiquez votre intervalle (5000 par exemple, qui circule toutes les 5 secondes.)

<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> 

Note: Pour éviter CORS vous devez appeler ajax de même hôte ou permettre CORS de côté serveur.

Questions connexes