javascript - 从 API 写入数据时,使用 SQLite3 处理并发的正确方法是什么?
问题描述
使用以下 API 时,我需要存储从事件返回的数据,例如:
- 用户加入
- 用户离开
这些事件可能随时发生,这使得并发写入变得困难。
socket.on('UserJoin', data => {
// Write data to the database
});
socket.on('UserLeave', data => {
// Write data to the database
});
- 当我需要从Mixer 的 API写入数据时,如何使用 SQLite3 处理并发?
- 在这种情况下,我的 Electron 应用程序中是否应该使用 SQLite3 以外的东西?
解决方案
我没有足够的积分来发表评论,所以请原谅我将我的评论扭曲为答案。
SQLite 可以在各种配置中支持有限并发,例如在 WAL 模式下运行 SQLite 并使用 THREADSAFE=1 或等效的配置选项 SQLITE_CONFIG_SERIALIZED。此配置允许多个并发读取器,但一次只能有一个写入器。写入是通过阻塞序列化的,因此如果您需要同时写入,这在您的情况下可能不理想。
您可以在本地使用一些客户端-服务器数据库,例如 MySQL、Faircom、SQL Server、Postgres 等。
推荐阅读
- javascript - Onclick 事件仅有效一次
- java - 如何从其 Recycler View Adapter 调用 Activity 的方法?或者更好的是,如何从适配器访问活动的 UI 元素?
- assembly - arm汇编语言中的递归函数
- jenkins - 将 Jenkins 工作区更改传递给 /var/www 中的目录
- tensorflow - 在 eval 之后从对象检测 api 中获取边界框
- sql - 连接到单个列时对列值进行排序
- php - 使用 laravel 更改购物车中所有商品的价格
- alibaba-cloud - Put Bucket 请求返回 403 Forbidden 和错误代码:AccessDenied
- javascript - 使用 mapStateToProps 时在道具中未定义
- reactjs - React Native 错误 - 无法从“node_modules\react-native-safe-area-view\index.js”解析“./withSafeArea”