Cet article présente principalement l'exemple de code pour modifier régulièrement la base de données en python. L'éditeur pense que c'est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur et jetons un coup d'œil.
Lorsque nous devons modifier régulièrement la base de données, nous choisissons généralement de démarrer un processus planifié pour modifier la base de données. Si ce genre de tâche planifiée est écrite dans l'entreprise et écrite comme une interface, le processus planifié semble un peu inapproprié ? Si vous devez modifier la base de données 100 fois régulièrement, la méthode conventionnelle démarrera 100 processus. Bien que ce processus soit très léger, il reste inconfortable. En fait, nous pouvons utiliser threading.Timer pour créer les threads correspondants afin d'effectuer des opérations de modification de bibliothèque, et l'idée est relativement simple.
1. Passez update_time, l'heure à laquelle l'opération de modification de la base de données est effectuée, et utilisez la méthode de soustraction entre update_time et l'heure actuelle pour obtenir le time_delay jusqu'à l'opération de modification de la base de données. Pour trouver la différence de temps entre deux chaînes de format d'heure standard, vous pouvez utiliser datetime.datetime.strptime() pour formater l'heure. L'heure formatée peut être directement soustraite et le résultat peut être converti en secondes en exécutant .seconds() <.>
2. Encapsulez l'opération de modification de la bibliothèque dans la méthode update(), puis transmettez la mise à jour et le décalage horaire dans le thread créé par threading.Timer. L'utilisation est créée par threading.Timer(interval, function, args. =[], kwargus={}) Instance de thread, l'intervalle est le temps d'exécution du retard, l'unité est en secondes, puis start() est exécuté. Timer n'est pas bloquant et peut créer plusieurs threads sans s'affecter les uns les autres. Le code est le suivant#!/usr/bin/env python3 # -*- coding: utf-8 -*- from model import Table from handler.base_handler import BaseHandler from threading import Timer import datetime class TimeHandler(BaseHandler): def do_action(self): update_time = "2018-04-07 18:00:00" ads_id = "test_1" t_online = datetime.datetime.strptime(update_time, '%Y-%m-%d %H:%M:%S') now = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S') t_now = datetime.datetime.strptime(now, '%Y-%m-%d %H:%M:%S') time_delay = (t_online - t_now).seconds t1 = Timer(time_delay, self.update, (ads_id, )) t1.start() self.result = "success" return def update(self, ads_id): self.db.dsp.query(Table).filter(Table.ads_id == ads_id).update({Table.is_del: 0}) self.db.dsp.commit()
Explication détaillée de la lecture et de l'écriture de fichiers en Python
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!