ホームページ バックエンド開発 PHPチュートリアル Windows でスケジュールされたタスクを使用して PHP プログラムを自動的に実行する例_PHP チュートリアル

Windows でスケジュールされたタスクを使用して PHP プログラムを自動的に実行する例_PHP チュートリアル

Jul 13, 2016 am 10:30 AM
php windows スケジュールされたタスク

いわゆるタスクプランとは、ユーザーが事前に設定したアプリケーションをコンピューターが自動的に呼び出すことで、ユーザーの操作を簡素化するものです。 Windows 2000 のタスク スケジューラ (*NIX の cron プログラムに相当します。ここでは詳しく説明しません) を使用すると、ニーズを満たす最適な時間に実行するスクリプト、プログラム、またはドキュメントをスケジュールできます。以下では Windows 2000 を例に説明します。

具体的には、タスク スケジューラを使用して自動的に実行する必要がある場合は、次の手順を実行する必要があります:

「スタート」ボタンをクリックし、「プログラム」→「アクセサリ」→「システムツール」→「タスクスケジューラ」(または「設定」→「コントロールパネル」→「タスクスケジューラ」)を選択して、Windows 2000タスクスケジューラを起動します。
「タスクスケジュール」ウィンドウの「タスクスケジュールの追加」アイコンをダブルクリックしてシステムの「タスクスケジュールウィザード」を起動し、「次へ」ボタンをクリックして、指定されたプログラムリストで自動的に実行する必要があるアプリケーションを選択します。 「次へ」ボタンをクリックします。
適切なタスク スケジュール名を設定し、このタスクを自動的に実行する頻度 (毎日、毎週、毎月、1 回、コンピューターを起動するたび、ログインするたびなど) を選択し、「」をクリックします。次へ」ボタン。
この時点で、システムはユーザーに、何日、何時、実行できる時間帯など、プログラムを実行する特定の時刻を設定するように求めます。必要に応じて設定するだけで済みます。 。
次に、システムは、今後システムが自動的に実行できるように、適切なユーザー名とパスワードを設定するようにユーザーに要求します (図 5 を参照)。
最後に、「完了」ボタンをクリックするだけで、対応するタスクが Windows
2000 のタスク スケジューラに追加されます。その後、システム時刻と関連条件が設定されると、タスクは自動的に「記憶」されます。ユーザーの計画が一致すると、ユーザーが指定したアプリケーションが自動的に呼び出され、非常に便利です (Windows 2000 を起動するたびに、タスク スケジューラが自動的に起動し、バックグラウンドで実行され、ユーザーの計画が確実に実行されるようになります)時間通りに)。
ここで、作成したばかりのタスクが成功するかどうかをテストしてみましょう。「php」プログラム アイコン (図 6 を参照) を右クリックし、ポップアップ メニューで「実行」を選択します。通常の状況では、このようにアクティブ化されていれば、プログラム アイコンは正常に起動できます。操作が失敗した場合は、ユーザーとパスワードが正しく設定されているかどうかを確認し、システム リソースを節約するために「タスク
スケジューラ」サービスが開始されているかどうかを確認できます。これが操作の失敗の原因です。見つけるのに長い時間がかかりました。また、「システムログ」を確認して、動作失敗の原因を確認することもできます。

さて、タスク計画の応用例をたくさん話しましたが、本題に移りましょう。以下に 2 つの例を紹介します。
1. PHP を定期的に実行します

次のコードを編集し、test.php として保存します:

コードをコピーします

コードは次のとおりです: $fp = @fopen("test.txt", "a+");
fwrite($fp, date("Y-m-d H:i:s") . "PHP を定期的に実行しましょう!n" ) ;

fclose($fp)

?>


タスク プランを追加し、このステップでコマンドを入力します (図 2 を参照):

コードをコピーします

コードは次のとおりです: D:php4php.exe -q D:php4test.php

1分ごとに実行する時間を設定して、このタスクを実行します。

ここで、d:php4test.txt ファイルの内容が成功したかどうかを確認してみましょう。内容が以下のようであれば、成功おめでとうございます。


コードをコピーします

コードは次のとおりです:2003-03-03 11:08:01 PHP を定期的に実行しましょう。 2003-03-03 11:09:02 PHP を定期的に実行しましょう!
2003-03-03 11:10:01 PHP を定期的に実行しましょう!
2003-03-03 11:11:02 PHP を定期的に実行しましょう!


2. MYSQL に自動バックアップを実現させます
次のコードを編集し、backup.php として保存します。圧縮したい場合は、rar.exe をコピーします。

コードをコピーします

コードは次のとおりです:


if ($argc != 2 || in_array($argv[1], array('--help', '-?'))) {
?>
バックアップ Ver 0.01、i32 上の Win95/Win98/WinNT/Win2000/WinXP 用
Copyright (C) 2000 ptker All Rights Reserved.
これはフリー ソフトウェアです。
GPL ライセンスに基づいて変更および再配布することを歓迎します

バックアップ MySQL データベース用の PHP シェル スクリプト

使用法: <オプション>

<オプション>バックアップしたいデータベース名を指定できます。
--help を使用しますか、それとも -?オプションを選択すると、このヘルプを表示して終了できます。
} else {
$dbname = $argv[1];
$dump_tool = "c:\mysql\bin\mysqldump";
$rar_tool = "d:\php4\rar";
@exec("$dump_tool --opt -u user -ppassword $dbname > ./$dbname.sql");
@exec("$rar_tool a -ag_yyyy_mm_dd_hh_mm $dbname.rar $dbname.sql");
@unlink("$dbname.sql");
エコー「バックアップが完了しました!」;
}
?>


一任务计划を追加、在(図2に示されているように)この一步输入力コマンド:
复制码代码如下:

D:php4php.exe -q D:php4backup.php データベース名

時間は毎日 1 回実行されるように設定されており、その後このタスクが実行されます。
最後に、データ パッケージ名と現在の時間で構成される rar ファイルが生成されます。觍、读者自由に自己喜欢的を去ってください!
以上は原著です。结合本人实贱、补充说明如下:

如果出现错误:

试着設置任务帐户信息時に出た错误

指定の错误:

0x80070005:拒否绝访问
您は実行要求の操作の制限

「4.次にシステムは、システムが今後自動的に実行できるように、ユーザーに適切なユーザー名と秘密コードを設定することを要求します。ここでは、「システム」ユーザーの場合、秘密コードは空にするのが最適です。
このシステムの制限は非常に高く、管理者に比べて高い必要があり、コマンドを実行する際には一時的に乱用する必要はありません、これは何の条件もなく実行できることを示しています、この制限は核心进程都を殺します行こう

上面 2、追加の任務务划、この一步入力コマンド:

复制代码

代码如下:D:php4php.exe -q D:php4test.php

正确形式应である


复制代码

代码如下:"D:php4php.exe" -q "D:php4test.php"

つまり、パスは二重引用符で囲む必要があります。

私は最近、チェス、カード ゲーム、RPG ゲームなど、いくつかの PHP ゲーム プロジェクトを作成しましたが、そのすべてに多かれ少なかれ情報を定期的に更新するためのメカニズムが必要です。たとえば、チェスやカード ゲームのプレーヤーのタイムアウト検出などです。モンスターの更新、血液の自動回復、タスクの期限切れ、ランキングの更新など、RPG ゲームでよく使用されます。 PHP にはメモリ常駐プログラムがないため、処理にいくつかの困難があります。

いくつかのピアの実装方法を参照します。通常のアプローチは、特定のプロジェクトのニーズに応じてデータベースを定期的に更新する補助プログラムを C++、Python、Java などで作成することです。でも
そうするのはとても面倒です。まず第一に、これらの補助プログラムには別の言語を知っているプログラマーの介入が必要であり、必然的に開発コストとリスクが増加します。第二に、異なる言語のプログラマ間での共同デバッグは非常に面倒で、進捗が非常に遅いです。補助プログラムとフロントデスクの関係は非常に密接であるため、基本的には一緒に開発およびデバッグする必要があります。

私はプロジェクト内のタスクを定期的に実行する方法を採用しました。このソリューションの方が優れていると感じます。これは一度限りのタイプで、コードはすべて PHP に引き継がれます。

まず、データベース内に task という名前のテーブルを定義します。このテーブルには、exectime と

url の 2 つのフィールドがあります。このうち、exectimeはunix型のtime、urlはstring型です。各データはタスクを表しており、具体的な意味は「このタスクは実行時に実行され、実行アドレスは url である」ということになります。補助プログラムはこのテーブルを毎秒監視し、現在時刻とテーブル内の各タスクの時刻を比較し、その時刻に達すると URL を要求し、タスクの実行が完了し、タスクが削除されます。等々。

これの利点は、PHP プログラム開発者が、実行したい Web ページを必要なときに自由に実行できることです。このプログラムは 1 回作成するだけで済み、同様のプロジェクトで十分に使用できます。

このプログラムをWindowsサービスとarchlinuxデーモンにして、プロジェクト全体のクロスプラットフォームを実現しました。

補足コンテンツ:

タスクは次のように開始されます。ゲームのバックエンドにログインした後、サーバー制御ページに移動して、現在のサーバーの実行状況を確認してオンにします。サーバーのオンまたはオフ。サーバーを起動すると関連タスクがタスク リストに挿入され、サーバーを閉じるとタスク リストがクリアされます。人工的な形状です。

タスクの繰り返しが可能になるのは、これらのタスクがphpによってタスクテーブルに挿入され、タスクテーブル内の各タスクは一度実行された後に補助プログラムによって削除されるため、各タスクは一度しか実行できません。ループ内で実行する必要があるタスクがある場合、唯一の方法は、タスクを実行する PHP コードのタスク リスト (つまり、タスクの URL) にそれ自体を再挿入することです。


タスクタイムアウト、タスクタイムアウトはデータテーブルではタスク実行間のタイムアウトと、タスクページリクエスト時のタイムアウトの2種類に分けられます。ヘルパー プログラムは毎回、現在時刻までのすべてのタスクを実行するため、最初のケースは発生しません。 2 番目のケースでは、補助プログラムがこのページへのアクセスが成功したかどうかを自動的に判断します。サーバー エラーが返された場合、または接続が確立できなかった場合、タスクは削除されずに保持され、次のサイクルで再試行されます。


http://www.bkjia.com/PHPjc/767613.html

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/767613.html技術記事いわゆるタスクプランとは、ユーザが予め設定したアプリケーションプログラムをコンピュータが自動的に呼び出すことにより、ユーザの操作を簡略化するものである。 Windows 2000 のタスク スケジューラの利用 (... に非常に似ています)
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 一致式(PHP 8)とそれがスイッチとどのように異なるかを説明します。 Apr 06, 2025 am 12:03 AM

PHP8では、一致式は、式の値に基づいて異なる結果を返す新しい制御構造です。 1)Switchステートメントに似ていますが、実行ステートメントブロックの代わりに値を返します。 2)一致式の式は厳密に比較され、セキュリティが向上します。 3)スイッチステートメントの脱落の可能性を回避し、コードのシンプルさと読みやすさを向上させます。

Windows 7にMySQLをインストールできますか? Windows 7にMySQLをインストールできますか? Apr 08, 2025 pm 03:21 PM

はい、MySQLはWindows 7にインストールできます。MicrosoftはWindows 7のサポートを停止しましたが、MySQLは引き続き互換性があります。ただし、インストールプロセス中に次のポイントに注意する必要があります。WindowsのMySQLインストーラーをダウンロードしてください。 MySQL(コミュニティまたはエンタープライズ)の適切なバージョンを選択します。インストールプロセス中に適切なインストールディレクトリと文字セットを選択します。ルートユーザーパスワードを設定し、適切に保ちます。テストのためにデータベースに接続します。 Windows 7の互換性とセキュリティの問題に注意してください。サポートされているオペレーティングシステムにアップグレードすることをお勧めします。

クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? クロスサイトリクエストフォーファリー(CSRF)とは何ですか?また、PHPにCSRF保護をどのように実装しますか? Apr 07, 2025 am 12:02 AM

PHPでは、予測不可能なトークンを使用して、CSRF攻撃を効果的に防ぐことができます。特定の方法には次のものが含まれます。1。フォームのCSRFトークンを生成および埋め込みます。 2.リクエストを処理するときにトークンの有効性を確認します。

どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) どのようにしてクラスが拡張されたり、PHPでメソッドがオーバーライドされたりするのを防ぐことができますか? (最終キーワード) Apr 08, 2025 am 12:03 AM

PHPでは、最終的なキーワードを使用して、クラスが継承されないようにし、メソッドが上書きされます。 1)クラスを決勝としてマークする場合、クラスを継承することはできません。 2)メソッドを最終的にマークする場合、メソッドはサブクラスによって書き換えられません。最終的なキーワードを使用すると、コードの安定性とセキュリティが保証されます。

PSの負荷速度をスピードアップする方法は? PSの負荷速度をスピードアップする方法は? Apr 06, 2025 pm 06:27 PM

Slow Photoshopの起動の問題を解決するには、次のような多面的なアプローチが必要です。ハードウェアのアップグレード(メモリ、ソリッドステートドライブ、CPU)。時代遅れまたは互換性のないプラグインのアンインストール。システムのゴミと過剰な背景プログラムを定期的にクリーンアップします。無関係なプログラムを慎重に閉鎖する。起動中に多数のファイルを開くことを避けます。

[ブラウザ]タブを閉じることと、JavaScriptを使用してブラウザ全体を閉じることを区別する方法は? [ブラウザ]タブを閉じることと、JavaScriptを使用してブラウザ全体を閉じることを区別する方法は? Apr 04, 2025 pm 10:21 PM

ブラウザのJavaScriptを使用して、タブを閉じることとブラウザ全体を区別する方法は?ブラウザの毎日の使用中、ユーザーは...

See all articles