首页 > 解决方案 > 从 API 写入数据时,使用 SQLite3 处理并发的正确方法是什么?

问题描述

使用以下 API 时,我需要存储从事件返回的数据,例如:

这些事件可能随时发生,这使得并发写入变得困难。

socket.on('UserJoin', data => {
    // Write data to the database
});

socket.on('UserLeave', data => {
    // Write data to the database
});
  1. 当我需要从Mixer 的 API写入数据时,如何使用 SQLite3 处理并发?
  2. 在这种情况下,我的 Electron 应用程序中是否应该使用 SQLite3 以外的东西?

标签: javascriptnode.jssqliteelectron

解决方案


我没有足够的积分来发表评论,所以请原谅我将我的评论扭曲为答案。

SQLite 可以在各种配置中支持有限并发,例如在 WAL 模式下运行 SQLite 并使用 THREADSAFE=1 或等效的配置选项 SQLITE_CONFIG_SERIALIZED。此配置允许多个并发读取器,但一次只能有一个写入器。写入是通过阻塞序列化的,因此如果您需要同时写入,这在您的情况下可能不理想。

您可以在本地使用一些客户端-服务器数据库,例如 MySQL、Faircom、SQL Server、Postgres 等。


推荐阅读