Maison  >  Article  >  développement back-end  >  Implémentation des tâches planifiées PHP : étapes pour annuler les commandes toutes les 10 minutes

Implémentation des tâches planifiées PHP : étapes pour annuler les commandes toutes les 10 minutes

WBOY
WBOYoriginal
2024-03-01 21:18:03570parcourir

Implémentation des tâches planifiées PHP : étapes pour annuler les commandes toutes les 10 minutes

Titre : Implémentation de tâches planifiées PHP : étapes pour annuler les commandes toutes les 10 minutes

Dans les plateformes e-commerce ou les sites de trading en ligne, le traitement des commandes est un maillon important. Parfois, les utilisateurs peuvent ne pas payer longtemps après avoir passé une commande, ou la commande doit être annulée pour d'autres raisons. Afin d'annuler automatiquement les commandes, nous pouvons utiliser des tâches planifiées PHP pour vérifier la commande et l'annuler toutes les 10 minutes.

Voici les étapes de fonctionnement spécifiques et des exemples de code :

Étape 1 : Configurer une tâche planifiée

Tout d'abord, nous devons configurer une tâche planifiée sur le serveur pour permettre au système d'exécuter le script PHP que nous avons écrit toutes les 10 minutes. . Vous pouvez utiliser cron pour réaliser cette fonction, ouvrez le terminal et entrez la commande suivante :

crontab -e

Ajoutez ensuite une ligne similaire à la suivante :

*/10 * * * * php /path/to/cancel_orders.php

Cette ligne de code signifie que le script PHP nommé Cancel_orders.php sera exécuté tous les 10 minutes.

Étape 2 : Écrire un script PHP

Ensuite, nous devons écrire le script PHP Cancel_orders.php pour implémenter la fonction d'annulation de commande. Voici un exemple simple :

<?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();
?>

Dans ce code, nous nous connectons d'abord à la base de données, puis recherchons les commandes avec un statut « en attente » et une heure de création antérieure à 10 minutes avant l'heure actuelle, puis mettons à jour le statut. de ces commandes à « annulées ». Imprimez enfin les informations sur la commande annulée.

Étape 3 : Test d'exécution

Une fois les étapes ci-dessus terminées, vous pouvez exécuter manuellement le script PHP une fois pour tester s'il fonctionne correctement. Entrez la commande suivante dans le terminal :

php /path/to/cancel_orders.php

Si tout se passe bien, le système annulera la commande appropriée.

Grâce aux étapes ci-dessus, nous avons mis en œuvre avec succès l'opération d'annulation des commandes toutes les 10 minutes à l'aide de tâches planifiées PHP. Ce type d'opération automatisée peut considérablement améliorer l'efficacité du traitement des commandes et réduire la charge des opérations manuelles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn