Python
Suivez d'abord les instructions vers compiler et installer litesync du code source ou utiliser le binaires pré-compilés pour votreplateforme.Vous pouvez commencer par la version gratuite.
Installez ensuite le module Litesync en fonction de la version Python:
Python 3
pip install litesync
Python 2.7
git clone --depth=1 https://gitlab.com/litesync/python2 litesync-python2
cd litesync-python2
python setup.py build
sudo python setup.py install
Exemple de code
Le module Litesync a la même API que le sqlite3 module
import litesync as sqlite3
import json
import time
conn = sqlite3.connect('file:app.db?node=secondary&connect=tcp://server:port')
# Vérifiez si la base de données est prête
while not conn.is_ready():
time.sleep(0.250)
# Maintenant, nous pouvons utiliser la connexion DB
...
Mettre à jour la notification
Votre application peut être informée lorsque la base de données locale est mise à jour en raison de la synchronisation avec les nœuds distants.La notification est effectuée via une fonction définie par l'utilisateur.
def on_db_update(arg):
print("update received")
conn.create_function("update_notification", 1, on_db_update)
Important: La fonction de notification est appelée par le fil du travailleur.L'application doit pas utiliser la connexion DB à l'intérieur de la fonction de notification et elle doit revenir le plus rapidement possible!L'application peut transférer la notification vers le thread principal avant le retour.
Dépannage
Nous pouvons également utiliser le module SQLite3 du Python sur Linux et Windows
Dans les deux cas, le module Sqlite3 de Python interface avec la bibliothèque SQLite du système
Linux
Nous avons 2 options pour faire du python pour utiliser la bibliothèque SQLite modifiée contenant du litesync:
A.Utilisez LD_LIBRARY_PATH lors de l'ouverture de l'application
LD_LIBRARY_PATH=/usr/local/lib/litesync python app.py
B. Faites en sorte que le module SQLite3 utilise la bibliothèque litesync
sudo apt install patchelf
patchelf --replace-needed libsqlite3.so.0 liblitesync.so /usr/lib/python2.7/lib-dynload/_sqlite3.so
Pour vérifier si ça a réussi:
ldd /usr/lib/python2.7/lib-dynload/_sqlite3.so
Windows
Remplacez le fichier sqlite3.dll dans le dossier \Python\DLLs par celui contenant litesync (renommer de litesync.dll à sqlite3.dll)
usage
Dans ce cas, nous utilisons le module SQLite3 au lieu du module Litesync
import litesync as sqlite3
import json
import time
conn = sqlite3.connect('file:app.db?node=secondary&connect=tcp://server:port')
# Vérifiez si la base de données est prête
while not conn.is_ready():
time.sleep(0.250)
# Maintenant, nous pouvons utiliser la connexion DB
...