Maison > Questions et réponses > le corps du texte
1. Je souhaite utiliser la file d'attente pour vérifier si la commande a été passée depuis plus de 15 minutes, si elle dépasse 15 minutes, je modifierai la base de données pour annuler l'expiration du délai, mais je ne sais pas par où commencer
.漂亮男人2017-06-06 09:54:43
Cette fonction peut être conçue pour déclencher le comportement de l'utilisateur. Par exemple, lorsque l'utilisateur vérifie la commande et détermine qu'elle n'a pas été payée et qu'elle a dépassé 15 minutes, le statut de la commande sera modifié en annulation de délai d'attente. Les commandes qui n'ont pas été consultées et dont le statut n'a pas été mis à jour pourront être mises à jour tôt le matin par des tâches planifiées. Lorsque le volume des commandes est important, il n'est pas recommandé de synchroniser le statut de toutes les commandes en temps réel, et cela n'a aucun sens.
怪我咯2017-06-06 09:54:43
Interrogation de la base de données : utilisez des tâches planifiées pour interroger la base de données afin d'interroger le traitement des commandes associées. Utilisez-la lorsque le volume n'est pas important. Cette méthode est simple, pratique et facile à maintenir dans les petits projets
.Ring Queue : Référence : http://mp.weixin.qq.com/s/mvF...
Service de file d'attente : Utiliser le traitement de file d'attente différé Référence : http://tech.youzan.com/queuin...
高洛峰2017-06-06 09:54:43
Une meilleure solution consiste à utiliser une roue temporelle, qui est la file d'attente en anneau mentionnée ci-dessus
Cela peut également être réalisé en utilisant la notification de l'espace clé Redis. Réglez le délai d'expiration sur 15 minutes, écoutez les événements de suppression de clé, et effectuez l'opération correspondante
滿天的星座2017-06-06 09:54:43
Pas besoin de Redis
Cela peut être réalisé avec MySQL
Plan :
Écrivez un script PHP, exécutez le processus démon,
boucle while et vérifiez la bibliothèque. Si la commande prend plus de 15 minutes et que la commande n'est pas payée et non expédiée, l'opération d'annulation sera effectuée