web-dev-qa-db-ja.com

WAMPのようなローカルサーバーでcronジョブをテストする方法は?

WAMPのようなローカルサーバーでcronジョブをテストする方法は?

15
Starx

WindowsにはCronがありません(これはLinuxシステムのメインタスクスケジューリングプログラムです)。そのためのWindowsバージョンは タスクスケジューラ です。 この質問 atコマンドの使用をお勧めします。

CronがApache、Mysql、PHPセットアップとは何の関係もないように、WindowsでLinux Cron用に作成したcronジョブを確実にテストすることは不可能だと思います(多分と Cygwin )。

13
Daff

HTMLページを作成し、ブラウザで開くことができます。 javascript setInterval関数は、指定された期間を呼び出します。

これを行うためのコードは次のとおりです。間隔を指定します(5000秒など、5秒ごとに実行されます)

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

注:CORSを回避するには、同じホストからajaxを呼び出すか、サーバー側からCORSを許可する必要があります。

6

スクリプトはURLから直接実行できます。つまり、cron設定からcron_test.phpスクリプトを実行し、その結果をテストしたい場合は、 http://)のようにローカルホストからこのファイルを直接実行できます。 localhost/XXXX/cron_test.php

4
Ashwin

Cronをインストールします(はい、それは Windowsで利用可能 です)。

しかし、私はWindowsでそれをしたくありません。おそらく、VirtualBoxのコピーを入手して、開発を行うために本番環境によく似たものを作成する方がよいでしょう。

3
Quentin

これを実行できます:

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

ブラウザを閉じると、スクリプトが続行されます

set_time_limit(0);スクリプトを時間制限なしで機能させる

sleep($timetowait); while()の次のループを実行する前に待機する時間を決定します

ignore_user_abort(true);ブラウザを閉じてもスクリプトを続行します

while(1)は無限ループであるため、wampを終了するまで停止しません。

3

コマンドラインからジョブを実行するだけです。 cron自体ではなく、テストしたいジョブです。 cronをシミュレートするために定期的に実行する必要がある場合は、Windowsの「スケジュールされたタスク」機能を使用してください。

2
Mark Baker

Windows環境で1行だけでジョブをcronできます。私はほぼ5時間過ごしたので、他の人と共有したいのは仕事をすることです。

  • プログラムでは、php.exeパスを指定します。私のインストールでは、c:\ wamp\bin\php\php5.3.5\php.exeです。
  • 次に、実行するファイルの絶対パスを入力する必要があります。 -f c:\wamp\www\foo\foo.php引数で

これで完了です。何もインストールする必要はありません。

2
Ihsanullah khan

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

メタレフェッシュをすぐに設定します。コンテンツ= 0(5秒ごと):コンテンツ= 5

0
Nitin Handa