多进程应用程序中的SQLite更新挂钩

时间:2018-01-22 10:00:18

标签: sqlite hook multiprocess

我在多进程场景中使用sqlite。 sqlite库是使用线程安全的序列化模式(-DSQLITE_THREADSAFE=1)编译的。

我希望收到有关datachanges的通知,并找到sqlite3_update_hook。每个进程都会注册它自己的更新挂钩,以通知数据库的更改。

现在的问题是:如果进程A修改了数据库,是否会调用进程B的更新挂钩?或者钩子只能在同一个进程或同一个连接中工作吗?

可悲的是,文档对此并不十分清楚。

1 个答案:

答案 0 :(得分:2)

documentation说:

  

sqlite3_update_hook()接口使用第一个参数标识的数据库连接注册回调函数

数据库连接是本地对象;在此过程或其他过程中,钩子不会为任何其他连接触发。