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

WBOY
Libérer: 2024-03-01 21:20:02
original
535 Les gens l'ont consulté

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
Copier après la connexion

Ajoutez ensuite une ligne similaire à la suivante :

*/10 * * * * php /path/to/cancel_orders.php
Copier après la connexion

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();
?>
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!