Knex не пытается дождаться освобождения sqlite - PullRequest
0 голосов
/ 21 апреля 2019

Я недавно внедрил кластер Node как способ вертикального масштабирования моего приложения. Поскольку теперь он использует несколько потоков, я, естественно, добавил в приложение стресс-тесты, и это выявило проблему с моим приложением.

Так что ради этого вопроса я действительно упросту мою настройку. У меня есть кластерное приложение Node, и каждый из дочерних процессов обращается к одному и тому же файлу SQLite. Я знаю, что это не идеальное решение, но, насколько мне известно, когда параллельные запросы пытаются получить к нему доступ, последний должен ждать, пока база данных станет свободной. К сожалению, этого не происходит.

Я получаю следующую ошибку

Ошибка: SQLITE_BUSY: база данных заблокирована
код ошибки: 5, код: «SQLITE_BUSY»

Моя конфигурация

"sqlite": {
  "client": "sqlite3",
  "connection": {
    "filename": "app/database/database.sqlite"
  },
  "useNullAsDefault" : true,
  "pool": {
    "min": 1,
    "max": 1 <- i tried increasing this to the number of cluster instances
  }
}

Есть ли решение для этого, кроме удаления SQLite в целом?

...