2017-07-14 5 views
-1

特定の時間にいくつかのコードを実行する方法を探しています。 4pmのように、ロジックを実行してデータベースを更新します。私はgoogledとCron(Linuxモジュール)スケジュールされたタスク(ウィンドウ)がこのタスクを行うことがわかった。あなたはプログラムすることができ、これらのユーティリティはあなたのロジックを希望の時間に実行しますが、私はそこにあることを知りたいのですWindowsで実行されないPHPでの時間ベースのコード実行

+0

*永続的なPHPタスクを無期限に実行できる場合は、無限ループを行い、それがまだ時刻かどうかを確認してください。しかし、それがなければ、誰が* PHPを起動して、PHPが動作し続けることを保証しようとしていますか? – deceze

答えて

0

sleep()を60秒間実行し、現在のtime()で実行する処理があるかどうかを確認する必要があります。

何かがある場合:それを行う。その後、sleep()あなたの無限ループで再び。

1

LinuxのCronデーモンとWindowsのScheduled Tasksサービスは、継続的に動作するシステムコンポーネントです。彼らは実行するジョブのリストを保持します。各ジョブは、実行する時間(繰り返し)と実行するコマンドによって記述されます。 Windowsには他の詳細もありますが、関連性はありません。

CronデーモンまたはScheduled Tasksサービスは、実行するコマンドについてはあまり気にしません。実行可能な場合は実行されます。

4amで実行するコマンドは、シェル(ターミナルウィンドウ内)またはCronタスクまたはスケジュールされたタスクによって実行されるかどうかを気にする必要のないPHPスクリプトです。

Cronデーモンの責任を負うPHPスクリプトを書くことは可能ですが、お勧めしません。あなたが扱う必要のある予期しない状況がたくさんあります。たとえば、コンピュータの起動時に起動され、継続的に実行されることを確認する方法を実装する必要があります。午前4時に予定されているジョブをスキップしないようにしてください。また、2度実行しないようにしてください。そんなこと、など。

Cronデーモン(Linuxの場合)とスケジュールされたタスクサービス(Windowsの場合)によって、これらの(明らかにマイナーな)すべてのものがすでに処理されていて、正常に動作しています。あなたができる場合はそれらを使用してください!
OSによって提供されるこれらのサービスの使用上の唯一の障害は、ジョブを作成/更新/削除するためにサーバー上の管理者でなければならないということです。

関連する問題