Comment utiliser Redis pour annuler une commande en 15 minutes dans thinkphp5 ?
过去多啦不再A梦
过去多啦不再A梦 2017-06-06 09:52:43
0
5
1707

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

.
过去多啦不再A梦
过去多啦不再A梦

répondre à tous(5)
漂亮男人

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.

刘奇

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...

小葫芦

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

phpcn_u1582

N'est-il pas bon d'utiliser une minuterie

滿天的星座

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

.
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal