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

时间:2019-07-13 03:38:37

标签: javascript node.js sqlite electron

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

  • UserJoin
  • UserLeave

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

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

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

1 个答案:

答案 0 :(得分:0)

我没有足够的观点要发表评论,因此请原谅我将我的评论扭曲为答案。

SQLite可以在各种配置中支持有限的并发性,例如在WAL模式下运行SQLite并使用THREADSAFE = 1或等效的配置选项SQLITE_CONFIG_SERIALIZED。此配置允许同时有多个读取器,但一次仅允许一个写入器。写操作使用阻塞进行序列化,因此如果您需要同时写操作,那么在您的情况下可能不希望这样做。

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