タイトル: PHP スケジュールされたタスク: 10 分ごとの注文の自動キャンセル、具体的なコード例が必要です
e コマース プラットフォームの運用では、注文の自動キャンセルは一般的なニーズ、特に長期間支払われていない注文、またはその他の特定の状況下での注文。効率を向上させ、人件費を削減するために、PHP のスケジュールされたタスクを使用して、10 分ごとに注文を自動的にキャンセルできます。以下に、PHP コードを使用してこの機能を実現する方法を説明します。
まず、CRON (時限タスク スケジューラ) を使用して、サーバー上で 10 分ごとに実行されるタスクを設定する必要があります。具体的な方法については、サーバーのオペレーティング システムのマニュアルを参照してください (ここでは Linux システムを例に説明します)。ターミナルを開き、次のコマンドを入力して CRON タスクを編集します。
crontab -e
次に、次の行を追加します。
*/10 * * * * php /path/to/your/php/script.php
上記のコマンドは、## で 10 分ごとに実行されることを意味します。 #script.php ファイル PHP スクリプト。次に、注文を自動キャンセルする機能を実装するためのPHPスクリプトを書いてみましょう。
<?php // 连接数据库 $servername = "localhost"; $username = "username"; $password = "password"; $dbname = "database_name"; $conn = new mysqli($servername, $username, $password, $dbname); // 检查数据库连接 if ($conn->connect_error) { die("数据库连接失败: " . $conn->connect_error); } // 查询未支付且创建时间超过10分钟的订单 $current_time = time(); $sql = "SELECT * FROM orders WHERE status = 'unpaid' AND (UNIX_TIMESTAMP(NOW()) - UNIX_TIMESTAMP(created_at)) >= 600"; $result = $conn->query($sql); if ($result->num_rows > 0) { // 更新订单状态为取消 while ($row = $result->fetch_assoc()) { $order_id = $row["id"]; $update_sql = "UPDATE orders SET status = 'cancelled' WHERE id = $order_id"; if ($conn->query($update_sql) === TRUE) { echo "订单 $order_id 已取消 "; } else { echo "取消订单 $order_id 失败: " . $conn->error; } } } else { echo "无需取消订单 "; } // 关闭数据库连接 $conn->close(); ?>
以上がPHP スケジュールされたタスク: 10 分ごとに注文操作を自動的にキャンセルしますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。