タイトル: PHP スケジュールされたタスクの実装: 10 分ごとに注文をキャンセルする操作手順
e コマース プラットフォームやオンライン取引 Web サイトでは、注文処理は重要なリンクです。場合によっては、ユーザーが注文後長期間支払わない場合や、その他の理由で注文をキャンセルする必要がある場合があります。注文を自動的にキャンセルするには、PHP スケジュールされたタスクを使用して注文を確認し、10 分ごとにキャンセルします。
以下は具体的な操作手順とコード例です:
ステップ 1: スケジュールされたタスクを設定する
まず、サーバー上にスケジュールされたタスクを設定する必要があります。システムは、作成した PHP スクリプトを 1 分ごとに実行できることを確認します。 cron を使用してこの機能を実現するには、ターミナルを開いて次のコマンドを入力します:
crontab -e
次に、次のような行を追加します:
*/10 * * * * php /path/to/cancel_orders.php
このコード行は、名前 cancel_orders を意味します。 .php PHP スクリプトは 10 分ごとに実行されます。
ステップ 2: PHP スクリプトを作成する
次に、注文をキャンセルする機能を実装するために、PHP スクリプト cancel_orders.php を作成する必要があります。以下は簡単な例です:
<?php // 连接数据库 $conn = new mysqli("localhost", "username", "password", "database"); // 检查连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 获取需要取消的订单 $query = "SELECT * FROM orders WHERE status = 'pending' AND date < NOW() - INTERVAL 10 MINUTE"; $result = $conn->query($query); if ($result->num_rows > 0) { // 取消订单 while ($row = $result->fetch_assoc()) { $order_id = $row['id']; // 执行取消订单的操作,例如更新订单状态为cancelled $update_query = "UPDATE orders SET status = 'cancelled' WHERE id = $order_id"; $conn->query($update_query); echo "订单 $order_id 已取消 "; } } else { echo "没有需要取消的订单 "; } $conn->close(); ?>
このコードでは、最初にデータベースに接続し、次にステータスが「保留中」で作成時刻が現在時刻より 10 分前である注文をクエリします。次に、これらの注文のステータスを「キャンセル済み」に更新して追加します。最後にキャンセルされた注文情報を印刷します。
ステップ 3: テスト実行
上記のステップが完了したら、PHP スクリプトを手動で 1 回実行して、正しく動作するかどうかをテストできます。ターミナルに次のコマンドを入力します。
php /path/to/cancel_orders.php
すべてがうまくいけば、システムは適切な注文をキャンセルします。
上記の手順により、PHP スケジュール タスクを使用して 10 分ごとに注文をキャンセルする操作を正常に実装できました。この自動化されたオペレーションにより、注文処理の効率が大幅に向上し、手作業の負担が軽減されます。
以上がPHP スケジュールされたタスクの実装: 10 分ごとに注文をキャンセルする手順の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。