Python

首先按照说明编译并安装 litessync从源代码中或使用预先编译的binaries 为您平台。您可以从免费版本开始。

然后根据Python版本安装LitesNC模块:


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


示例代码

LiteSync 模块的API与 sqlite3 模块

import litesync as sqlite3
import json
import time

conn = sqlite3.connect('file:app.db?node=secondary&connect=tcp://server:port')

# 检查数据库是否准备就绪
while not conn.is_ready():
    time.sleep(0.250)

# 现在我们可以使用数据库连接
...


更新通知

由于与远程节点同步,可以在更新本地数据库时通知您的应用程序。通知是通过用户定义的函数完成的。

def on_db_update(arg):
  print("更新收到")

conn.create_function("update_notification", 1, on_db_update)

重要:工人线程调用通知功能。该应用程序应使用通知功能内的DB连接,并且必须尽可能快地返回!该应用程序可以在返回之前将通知转移到主线程中。




故障排除

我们还可以在Linux和Windows上使用Python的SQLite3模块

在这两种情况下


Linux

我们有2个选项使Python使用包含LITESNC的修改后的SQLite库:


A. 打开应用程序时使用 LD_LIBRARY_PATH

LD_LIBRARY_PATH=/usr/local/lib/litesync python app.py

B. 使SQLITE3模块使用Litessync库

sudo apt install patchelf

patchelf --replace-needed libsqlite3.so.0 liblitesync.so /usr/lib/python2.7/lib-dynload/_sqlite3.so

检查它是否成功:

ldd /usr/lib/python2.7/lib-dynload/_sqlite3.so


Windows

将文件夹 \Python\DLLs 中的 sqlite3.dll 文件替换为包含 LiteSync 的文件(从 litesync-0.1.dll 重命名为 sqlite3.dll)


用法

在这种情况下,我们使用sqlite3模块而不是litesnc模块

import litesync as sqlite3
import json
import time

conn = sqlite3.connect('file:app.db?node=secondary&connect=tcp://server:port')

# 检查数据库是否准备就绪
while not conn.is_ready():
    time.sleep(0.250)

# 现在我们可以使用数据库连接
...