Python
먼저 컴파일 및 설치 소스 코드에서 litesync에 대한 지침을 따르거나 사전 컴파일 된 바이너리를 사용하십시오.플랫폼.무료 버전으로 시작할 수 있습니다.
그런 다음 Python 버전에 따라 litesync 모듈을 설치하십시오.
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 모듈은 sqlite3 모듈과 동일한 API를 갖습니다.
import litesync as sqlite3
import json
import time
conn = sqlite3.connect('file:app.db?node=secondary&connect=tcp://server:port')
# DB가 준비되었는지 확인하십시오
while True:
result = conn.cursor().execute("PRAGMA sync_status").fetchone()
status = json.loads(result[0])
if status["db_is_ready"]: break
time.sleep(0.250)
# 이제 DB 연결을 사용할 수 있습니다
...
알림 업데이트
원격 노드와 동기화되어 로컬 데이터베이스가 업데이트 될 때 응용 프로그램에 알릴 수 있습니다.알림은 사용자 정의 기능을 통해 수행됩니다.
def on_db_update(arg):
print("update received")
conn.create_function("update_notification", 1, on_db_update)
중요 : 알림 함수는 작업자 스레드에서 호출됩니다.응용 프로그램은 알림 기능 내부의 DB 연결을 사용해야하며 가능한 빨리 반환해야합니다!응용 프로그램은 반환하기 전에 알림을 기본 스레드로 전송할 수 있습니다.
문제 해결
Linux 및 Windows에서 Python의 SQLite3 모듈을 사용할 수도 있습니다.
두 경우 모두 Python의 SQLITE3 모듈은 시스템의 SQLITE 라이브러리와 인터페이스합니다.
Linux
litesync를 포함하는 수정 된 sqlite 라이브러리를 사용하기 위해 파이썬을 만드는 두 가지 옵션이 있습니다.
A. 응용 프로그램을 열 때 LD_LIBRARY_PATH 사용
LD_LIBRARY_PATH=/usr/local/lib/litesync python app.py
B. sqlite3 모듈이 litesync 라이브러리를 사용하게하십시오
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로 바꾸기)으로 바꾸십시오.
용법
이 경우 Litesync 모듈 대신 SQLite3 모듈을 사용합니다.
import sqlite3
import json
import time
conn = sqlite3.connect('file:app.db?node=secondary&connect=tcp://server:port')
# DB가 준비되었는지 확인하십시오
while True:
result = conn.cursor().execute("PRAGMA sync_status").fetchone()
status = json.loads(result[0])
if status["db_is_ready"]: break
time.sleep(0.250)
# 이제 DB 연결을 사용할 수 있습니다
...