Я думаю, что это очень простой вопрос. Но я не могу решить это сам.
У меня есть два приложения. Один пишет в sqlite3 databse с очень быстрым темпом - около 6 транзакционных блоков в секунду. Другой должен иногда считывать данные из базы данных.
Как мне проектировать эти два приложения? На данный момент, когда 1-е приложение записывает другой, с ошибкой «база данных заблокирована» в любых функциях, которые я пытался выполнить: SQLite3_Open или SQLite3_Open_v2 с флагом SQLITE_OPEN_READONLY.
ГЛАВНЫЙ ВОПРОС:: Является ли одно приложение способным «SELECT», а другое - «INSERT» вообще?
Если нет, что мне делать?
Закройте соединение с базой данных, затем откройте другое соединение с базой данных, выберите, затем закройте его, затем откройте соединение для записи снова и продолжите вставку? Другими словами мне нужно, чтобы «изобрел» какой-то механизм, который контролировал бы доступ к базе данных separte из этих приложений «читать» и «писать»?
Если да, то есть возможность для расширения «A» для принудительного соединения «B» с закрытым подключением Спасибо!SQLite многопроцессорный доступ
ответ
SQLite может обрабатывать несколько процессов в порядке. С поддержкой WAL вы можете даже читать из базы данных из одного соединения, пока другой пишет. Шесть транзакций в секунду не так уж много, предполагая, что каждый из них не занимает больше 166 мс каждый.
Заблокировка обычно возвращается при выполнении инструкции, а не при открытии базы данных. Возможно ли, чтобы первое соединение было открыто с помощью SQLITE_OPEN_EXCLUSIVE
? Это может привести к тому, что другой процесс не сможет открыть соединение. Если это так, удалите этот флаг.
Самуэль, благодарю вас за ответ!
–
Alex
- 1. Многопроцессорный Python
- 2. Многопроцессорный подпроцесс
- 3. многопроцессорный python
- 4. Многопроцессорный доступ к базе данных в Windows Phone
- 5. Многопроцессорный пул Python
- 6. python скрученный и многопроцессорный
- 7. Многопроцессорный словарь в python
- 8. многопроцессорный инициализатор и травление
- 9. Многопроцессорный и многопоточный дизайн
- 10. Многопроцессорный пул apply_async
- 11. Многопроцессорный цикл в Python
- 12. Многопроцессорный цикл for
- 13. PHP Многопроцессорный процесс?
- 14. Python 2.7 Многопроцессорный барьер
- 15. Python многопроцессорный выход
- 16. многопроцессорный потребитель-кролик
- 17. питона многопроцессорный/потоковых очистки
- 18. многопроцессорный вызов подкласса очереди
- 19. Многопроцессорный пул и очереди
- 20. Многопроцессорный потребитель в java
- 21. Многопроцессорный режим, подлежащий таймеру
- 22. Многопроцессорный препроцессор __COUNTER__
- 23. Python Многопроцессорный цикл for
- 24. Многопроцессорный скрипт python
- 25. Sqlite частый доступ заголовка
- 26. многопроцессорный питон: как разбить задания
- 27. Многопроцессорный python не работает параллельно
- 28. Как использовать многопроцессорный модуль python
- 29. многопроцессорный процесс. Подпроцесс процесса. Готово?
- 30. Распределенный многопроцессорный пул в Python
Эта ссылка может вам помочь: http://stackoverflow.com/questions/1680249/how-to-use-sqlite-in-a-multi-threaded-application – Anuraj