Je souhaite faire une fonction de remboursement automatique ? Par exemple, si personne ne répond à son contenu dans les trois jours suivant le paiement, il entrera automatiquement dans la procédure de remboursement ! Mais comment écrire cette tâche chronométrée ? Dois-je exécuter le script PHP toutes les secondes ou écrire une tâche planifiée dans MySQL ?
Il existe plusieurs options, chacune avec des avantages et des inconvénients, voyez laquelle vous convient le mieux :
Le tableau correspondant doit définir le champ d'heure de commande et le champ d'heure d'expiration.
Le premier type : tâche planifiée crontab, exécutez un script php pour analyser la table, et si le délai d'expiration moins le délai de commande est supérieur à trois jours, il passera au statut de remboursement.
Deuxième méthode : utilisez les tâches planifiées de MySQL. Ce qui suit est une démonstration. La logique spécifique peut être écrite selon la vôtre.
Troisième méthode : utilisez Redis pour enregistrer et définissez le délai d'expiration sur 3 jours lors de l'enregistrement.
La première option
Avantages : Simple, la logique du code ne change pas beaucoup, il suffit de l'utiliser après l'avoir écrit
Inconvénients : La rapidité n'est pas très bonne, car vous devez exécuter la tâche crontab à une heure fixe
La deuxième option
Avantages : Direct Mysql est terminé, aucun autre lien n'est nécessaire
Inconvénients : Semblable aux avantages de crontab, et si vous n'êtes pas familier avec les tâches planifiées MySQL, vous devez quand même vous familiariser avec elles
La troisième option
Avantages : facile à utiliser , bonne ponctualité des commandes, et vous n'avez pas besoin d'aller sur MySQL une fois io
Inconvénients : le code de la couche logique peut devoir ajouter une logique Redis, et la stratégie de persistance, HA et maître-esclave doit être bien faite, sinon un temps d'arrêt sera tragique.
Utilisez les tâches planifiées Linux crontab pour exécuter un script php corrigé de temps en temps~
Écrivez une tâche planifiée et exécutez le script php toutes les secondes.
En retardant la file d'attente des messages, enregistrez la tâche d'écriture de la file d'attente des messages après avoir passé la commande, et déclenchez-la trois jours plus tard ; écrivez ensuite une interface pour juger simplement s'il faut effectuer une opération de remboursement ;
Les remboursements ne sont-ils pas sujets à révision ? Il a également exécuté le script directement et a tout mis en faillite !