ホームページ > バックエンド開発 > PHPチュートリアル > PHP定時送信サービスの問題解決方法

PHP定時送信サービスの問題解決方法

不言
リリース: 2023-04-01 09:44:01
オリジナル
1715 人が閲覧しました

この記事では主に PHP スケジュール送信サービスのソリューションを紹介します。必要な方は参考にしてください

##1. モバイル APP または WeChat を開発する場合、メッセージを定期的にプッシュする必要があるシナリオがよくあります。

スケジュール送信は 2 つのタイプに分類されます。

1 つは開発中に時間を固定するもので、バックグラウンド マネージャーはプッシュするメッセージを選択することしかできません。 # もう 1 つは、バックグラウンド管理者がプッシュする時間とメッセージを自由に選択できることです。

2. 解決策

PHP 自体PHP はスクリプト言語であるため、スケジュールされた送信はサポートされていません。ほとんどの場合、ブラウザが閉じているため、PHP は実行されません。ほとんどの場合、それは何らかの小さな外部のものに依存します。 1. 固定時間

ほとんどのサーバー システムは Windows または Linux です。

Linux: CronTab を使用して php を定期的に実行する

まず、コマンド ライン モードに入ります。サーバーとして、Linux は通常、デフォルトでコマンド ライン モードに入ります。もちろん、管理サーバーも通常、便宜上、root ユーザーとしてログインします。コマンドラインに次のように入力します:

 crontab -e
ログイン後にコピー

その後、ファイルが開かれ、非編集状態になります。 vi. キーボードの i を押すと編集モードになり、内容を編集できます。このファイルの各行はスケジュールされたタスクです。新しい行を作成すると、新しいスケジュールされたタスクが作成されます (もちろん、この行は特定の形式で記述されることを意味します)。ここで例を見て、次の内容の行を追加してみましょう:

00 * * * * lynx -dump https://www.yourdomain.com/script.php
ログイン後にコピー

これは何を意味しますか?実は上記の行は2つの部分から構成されており、前半部分が時間、後半部分が操作内容となります。たとえば、上記の

00 * * * *
ログイン後にコピー

は、現在時刻が 00 分のときに、スケジュールされたタスクが実行されることを意味します。時間の部分は、次の 5 つの時間パラメータで構成されます。n分、たとえば */8 は 8 分ごとを意味し、以下は類似しています週の日を識別する0〜6(0は日曜日を表す]文は操作の具体的な内容です。

lynx -dump https://www.yourdomain.com/script.php
ログイン後にコピー

これは、lynx を通じてこの URL にアクセスすることを意味します。 URL へのリモート アクセスを実現するには、主に lynx、curl、および wget を使用します。効率を向上させたい場合は、PHP を直接使用してローカル PHP ファイルを実行するのが最良の選択です。例:

00 */2 * * * /usr/local/bin/php /home/www/script.php
ログイン後にコピー
#。

## このステートメントは、2 時間ごとに 0 分に Linux 内部 PHP 環境を通じて script.php を実行できます。これは URL を通じてアクセスされるのではなく、サーバー環境を通じて直接実行されることに注意してください。サーバー環境をバイパスするため、効率は当然はるかに高くなります。

はい、必須のスケジュールされたタスクがいくつか追加されました。キーボードの Esc キーをクリックし、「:wq」と入力して Enter を押すと、設定したスケジュールされたタスクが保存され、新しいスケジュールされたタスクが作成されたことを示すプロンプトが画面に表示されます。次のステップは、script.php を適切に記述することです。

Windows:

Windows と Linux にも同様の cmd ファイルと butt ファイルがあります。bat ファイルの実行は、内部のコマンドを順番に実行することと同じです。 、プログラミングはロジックを通じて実装されるため、bat コマンド ファイルを使用して Windows サーバー上で PHP スケジュールされたタスクを実装することもできます。実際、Windows でのスケジュールされたタスクの原理は Linux のそれと同じですが、方法とアプローチは異なります。さて、始めましょう。

cessoverly\/

#

D:\php\php.exe -q D:\website\test.php
ログイン後にコピー

この文の意味は、php.exe を使用して php ファイル test.php を実行することは、上記の contab と同じであるということです。サーバー環境をバイパスするため、実行効率も比較的高く高いです。書き込んだ後、「保存」をクリックしてエディタを閉じます。

次のステップは、cron.bat を実行するようにスケジュールされたタスクを設定することです。 「スタート」→「コントロールパネル」→「タスクスケジュール」→「タスクスケジュールの追加」の順に開き、開いたインターフェースでスケジュールされたタスクの時刻とパスワードを設定し、cron.batを選択してマウントします。これで、スケジュールされたタスクが作成され、スケジュールされたタスクが実行されます。時間が経過すると、cron.bat が実行されます。 phpを実行します。

2. 時間を自由に選択します

一般的に使用されるブログ システム wordpress には、ブログのスケジュール投稿を実行するための wp-corn ファイルが含まれています。ブロガーは wp-corn を使用します。ファイルを書き込むためのプロトタイプ。

wp-cornはサーバーリソースを非常に消費する戦略です。全員がブログにアクセスすると、wp-corn ファイルが呼び出されます (現在のサーバー時間を読み取り、送信するかどうかを決定します)。デメリットとしては、訪問者が比較的少ない場合には送信が間に合わず、訪問者が多すぎるとサーバーのパフォーマンスが低下してしまうことです。

ブロガーがプロジェクトに取り組んでいたとき、会社は Windows サーバーを提供しました。使用される方法は、サーバー上でページを開き、1 分ごとに自動的に更新することです (単純な JS スクリプト。コードは提供されません)。

上記がこの記事の全内容です。その他の関連コンテンツについては、PHP 中国語 Web サイトをご覧ください。

関連する推奨事項:

PHP の事前定義インターフェイス分析

# #

以上がPHP定時送信サービスの問題解決方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート