sqlite:检查读取器/写入器锁定

2023-12-08

我有 2 个进程,它们都访问 sqlite3 数据库。虽然在 sqlite 中读取不是问题,但只有一个进程可以写入数据库。根据常见问题解答:http://www.sqlite.org/faq.html#q5sqlite 使用读/写锁。

我如何检查数据库是否被另一个进程(来自 python 和 c++)写入锁定?

[edit]我的意思是执行查询是一种选择,但它的性能取决于查询。所以问题还在于我应该使用什么类型的查询来最小化这种影响。我还想自己锁定/解锁数据库。


当 SQLite 尝试访问锁定的数据库时,它的默认行为是返回 SQLITE_BUSY。该文档描述了为此事件添加自定义处理的方法:http://www.sqlite.org/faq.html#q5.

我从文档中了解到,您调用的任何尝试写入此锁定数据库的函数都将简单地返回 SQLITE_BUSY,这将是您数据库已锁定的通知。

如果您担心执行无法完成的写入,可以结合繁忙超时 (sqlite3_busy_timeout) 实现繁忙处理程序回调 (sqlite3_busy_handler),这将在 x 毫秒后重试写入。

[edit] In http://www.sqlite.org/c3ref/io_methods.html,它提到了一个函数指针结构,其中一个是 xCheckReservedLock(),如果文件被锁定,它返回 true。该结构体中包含所有其他与锁相关的函数。我不确定是否可以从 sqlite 库外部访问这些内容,但这可能值得研究。我认为你可以通过这个界面来做到这一点:http://www.sqlite.org/c3ref/file_control.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sqlite:检查读取器/写入器锁定 的相关文章

  • 不同枚举类型的范围和可转换性

    在什么条件下可以从一种枚举类型转换为另一种枚举类型 让我们考虑以下代码 include
  • python获取上传/下载速度

    我想在我的计算机上监控上传和下载速度 一个名为 conky 的程序已经在 conky conf 中执行了以下操作 Connection quality alignr wireless link qual perc wlan0 downspe
  • 无法在 Python 3 中导入 cProfile

    我试图将 cProfile 模块导入 Python 3 3 0 但出现以下错误 Traceback most recent call last File
  • C#中如何移动PictureBox?

    我已经使用此代码来移动图片框pictureBox MouseMove event pictureBox Location new System Drawing Point e Location 但是当我尝试执行时 图片框闪烁并且无法识别确切
  • 创建链表而不将节点声明为指针

    我已经在谷歌和一些教科书上搜索了很长一段时间 我似乎无法理解为什么在构建链表时 节点需要是指针 例如 如果我有一个节点定义为 typedef struct Node int value struct Node next Node 为什么为了
  • SolrNet连接说明

    为什么 SolrNet 连接的容器保持静态 这是一个非常大的错误 因为当我们在应用程序中向应用程序发送异步请求时 SolrNet 会表现异常 在 SolrNet 中如何避免这个问题 class P static void M string
  • 如何在 Python 中追加到 JSON 文件?

    我有一个 JSON 文件 其中包含 67790 1 kwh 319 4 现在我创建一个字典a dict我需要将其附加到 JSON 文件中 我尝试了这段代码 with open DATA FILENAME a as f json obj js
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • 如何查看网络连接状态是否发生变化?

    我正在编写一个应用程序 用于检查计算机是否连接到某个特定网络 并为我们的用户带来一些魔力 该应用程序将在后台运行并执行检查是否用户请求 托盘中的菜单 我还希望应用程序能够自动检查用户是否从有线更改为无线 或者断开连接并连接到新网络 并执行魔
  • 这些作业之间是否存在顺序点?

    以下代码中的两个赋值之间是否存在序列点 f f x 1 1 x 2 不 没有 在这种情况下 标准确实是含糊不清的 如果你想确认这一点 gcc 有这个非常酷的选项 Wsequence point在这种情况下 它会警告您该操作可能未定义
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 为什么编译时浮点计算可能不会得到与运行时计算相同的结果?

    In the speaker mentioned Compile time floating point calculations might not have the same results as runtime calculation
  • 如何在Xamarin中删除ViewTreeObserver?

    假设我需要获取并设置视图的高度 在 Android 中 众所周知 只有在绘制视图之后才能获取视图高度 如果您使用 Java 有很多答案 最著名的方法之一如下 取自这个答案 https stackoverflow com a 24035591
  • 混合 ExecutionContext.SuppressFlow 和任务时 AsyncLocal.Value 出现意外值

    在应用程序中 由于 AsyncLocal 的错误 意外值 我遇到了奇怪的行为 尽管我抑制了执行上下文的流程 但 AsyncLocal Value 属性有时不会在新生成的任务的执行范围内重置 下面我创建了一个最小的可重现示例来演示该问题 pr
  • 是否可以在 .NET Core 中将 gRPC 与 HTTP/1.1 结合使用?

    我有两个网络服务 gRPC 客户端和 gRPC 服务器 服务器是用 NET Core编写的 然而 客户端是托管在 IIS 8 5 上的 NET Framework 4 7 2 Web 应用程序 所以它只支持HTTP 1 1 https le
  • 如何将服务器服务连接到 Dynamics Online

    我正在修改内部管理应用程序以连接到我们的在线托管 Dynamics 2016 实例 根据一些在线教程 我一直在使用OrganizationServiceProxy out of Microsoft Xrm Sdk Client来自 SDK
  • Windows 和 Linux 上的线程

    我在互联网上看到过在 Windows 上使用 C 制作多线程应用程序的教程 以及在 Linux 上执行相同操作的其他教程 但不能同时用于两者 是否存在即使在 Linux 或 Windows 上编译也能工作的函数 您需要使用一个包含两者的实现
  • 导入错误:没有名为 site 的模块 - mac

    我已经有这个问题几个月了 每次我想获取一个新的 python 包并使用它时 我都会在终端中收到此错误 ImportError No module named site 我不知道为什么会出现这个错误 实际上 我无法使用任何新软件包 因为每次我
  • C++ 中类级 new 删除运算符的线程安全

    我在我的一门课程中重新实现了新 删除运算符 现在我正在使我的代码成为多线程 并想了解这些运算符是否也需要线程安全 我在某处读到 Visual Studio 中默认的 new delete 运算符是线程安全的 但这对于我的类的自定义 new
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • .Net DateTime 包含本地时间和夏令时

    恐怕我不太明白 Net 是如何实现的DateTime类处理本地时间戳 我住在德国 所以我的语言环境是 de DE 也许有人可以启发我一点 The DateTime可以使用年 月等参数调用构造函数 另外还有一个DateTimeKind的价值L
  • Sparc 架构的 GCC 内联汇编

    我在互联网上找到了实施 sync val compare and swap define LOCK PREFIX lock struct xchg dummy unsigned long a 100 define xg x struct x
  • 从批处理文件创建 exe 的快捷方式

    如何从批处理文件创建 exe 的快捷方式 i tried call link bat c program Files App1 program1 exe C Documents and Settings USERNAME Desktop C
  • 如何使用 PHP 调整图像大小? [复制]

    这个问题在这里已经有答案了 可能的重复 将图片调整为固定尺寸 如何在 PHP 中调整图像大小 Try GD 和图像函数 或者 如果您想要的不仅仅是这些 像 ImageMagick 这样的库
  • @ViewChild中的read参数是做什么用的

    需要帮助理解以下语句中 read ViewContainerRef 的含义 ViewChild myname read ViewContainerRef target 可以有多个与元素标签相关联的各种类型的实例 myname模板变量 对于每
  • JavaScript 对数组的数组进行排序

    我有这个数组的数组 我希望它按数组的长度排序 我用array sort a b gt a length gt b length 2 2 2 2 2 5 3 3 3 3 1 2 2 1 4 3 1 1 5 5 4 4 4 4 4 4 3 5
  • Swift 泛型:非名义类型不支持显式初始化

    所以我试图理解通用协议和类 protocol ListPresenterType where View PDO SW Dispatcher SW associatedtype Dispatcher ListDispatcherType as
  • 在 Android 应用程序中集成/嵌入 Flash ?可能的?

    从到目前为止我在谷歌上搜索到的内容来看 我们似乎必须在网站中托管 Flash 文件 swf 并在 Web 视图中加载应用程序中的 html 页面 没有其他方法可以做到这一点吗 是否有任何库或其他东西可以集成它们 精简版闪存 以下 URL 讨
  • 如何使用 RetrieVe 或 SQL 查找 UniVerse 中的列列表?

    我有一个问题table 文件 设置为返回列foo on LIST table and SELECT FROM table 我需要知道其他可能的列table 我很确定这是通过设置实现的 不合格的行为定义LIST and select 的行为定
  • 具有共享数据库的微服务?使用多个 ORM? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我正在学习微服务 并且将构建一个具有微服务架构的项目 问题是 我的一位团队成员希望对所有服务使用一个数据库 共享所有表 这样 数据就不会重复 每个服务都将使用不同的框架和语言构建 例如 d
  • 如何计算数组中出现的次数?

    我生成了一个由 1 5 中的 5 个随机整数组成的数组 这是数组现在的样子 myArray 5 3 3 1 4 5 我现在已经按从小到大的升序对 5 个整数组成的数组进行了排序 myArray 5 1 3 3 4 5 我现在需要计算特定整数
  • 如何将我的 Java 程序放入系统托盘中?

    如何为 Java 程序提供系统托盘图标 我尝试在整个网络上搜索 但找不到任何东西 像这样 请参阅Java教程 http download oracle com javase tutorial uiswing misc systemtray
  • 将 DataAnnotations 与实体框架结合使用

    我使用 VS2010 的实体框架创建了一个简单的 person 类 其中包含属性 firstName lastName 和 email 如果我想像这样附加 DataAnnotations博客文章我有一个小问题 因为我的人员类是动态生成的 我
  • 使用 C#/VBScript 获取 mdb 文件 (msaccess) 中的所有源代码

    我想从一个网站获取所有源代码Access数据库 表单 模块 而不使用 Office 互操作 我喜欢AllCodeToDesktop 功能在这里找到 然而 这是从内部运行的mdb file 加载 mdb 文件并在其上运行该函数的 VBScri
  • 如何用Javascript减慢滚动速度?

    当我滚动一些包含许多元素的小 div 时 我的鼠标滚动太快 所以我看不到几个元素 滚动速度无法更改 因为它们是系统配置 并且不应允许 JavaScript 更改用户自己的设置 但是您可以使用很多 jquery 自定义滚动条 它们提供了更改滚
  • iScroll 仅动态填充的 div,也不滚动主页

    所以这篇文章可能会很长 但我还是坚持使用 iScroll 我正在做的是用文章填充我的列表 当单击其中一篇文章时 我会在列表上滑动一个 div 以显示该文章 该部分有效 但无效的是 当我滚动文章并到达末尾时 它会不断滚动文章列表 你可以看看h
  • 为什么 Date#getHours() 返回小时 + 1?

    This是我的代码 var feedDataTimestamp new Date 2014 01 14T00 04 40 0000 getTime var parsedDate new Date feedDataTimestamp aler
  • 如何立即停止 UIWebView 加载

    正如ios文档所说 webView stopLoading 应该使用方法来停止 webview 加载任务 据我所知 此方法异步运行 并且不会立即停止当前处理加载请求 但是 我需要一种方法来强制 webview 立即停止正在进行的任务 因为加
  • Python SimpleXMLRPCServer 中客户端的 IP 地址?

    我有一个简单XMLRPC服务器服务器 Python 如何在请求处理程序中获取客户端的 IP 地址 此信息出现在日志中 但是 我不确定如何从请求处理程序中访问此信息 正如迈克尔指出的 你可以得到client address从请求处理程序中 例
  • sqlite:检查读取器/写入器锁定

    我有 2 个进程 它们都访问 sqlite3 数据库 虽然在 sqlite 中读取不是问题 但只有一个进程可以写入数据库 根据常见问题解答 http www sqlite org faq html q5sqlite 使用读 写锁 我如何检查