на данный момент ситуация такая:
- главный поток подключается к sqlite3 и использует 1 файл базы.
- запускается Н потоков, они все подключаются к этому же sqlite-файлу и вносят в него изменения
сначала пробовал один раз подключиться к базе, а потом юзать соединение из потоков
sqlite запрещает - пишет что нельзя использовать базу, подключенную в другом потоке
потом стал создавать новые подключения в каждом потоке
начал глючить, типа база залочена
решилось использованием Lock()
теперь проблема в том, что когда потоков много - лезет ошибка «unable to open database file»
попробовал сделать очередь Queue, так чтобы потоки кидали в неё задания на изменение базы, а главный поток эти задания обрабатывал и сам работал с базой
и вот в чем проблема: делать всякие insert, update удобно, но как получать данные из базы в потоки?
например в базе есть таблица tasks и 100 потоков берут из таблицы рандом-строки, выполняют их и помечают в базе как выполненные
вариант читать таблицу в память и брать оттуда не подходит - таблиц много, размеры большие, да и теряются преимущества базы по сортировке, выборке - я также мог бы  грузить в память текстовый файл.
т.е получается, для того чтобы брать из базы рандом строки потоками - все же требуется в каждом потоке создавать подключение к файлу базы
что нам дает «unable to open database file» если потоков много
можете предложить иной способ работы с бд?

    
      Ответ на:
      
          комментарий
        от baverman 
  
    
      Ответ на:
      
          комментарий
        от anonymous 
  
    
      Ответ на:
      
          комментарий
        от baverman 
  
    
      Ответ на:
      
          комментарий
        от PoMbl4 
  
    
      Ответ на:
      
          комментарий
        от PoMbl4 
  
    
      Ответ на:
      
          комментарий
        от sergey-novikov 
  
    
      Ответ на:
      
          комментарий
        от PoMbl4 
  
    
        Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
      
Похожие темы
- Форум Как бороться с «database is locked» в sqlite? (2015)
 - Форум SQLite и несколько потоков (2012)
 - Форум Как организовать поток в памяти (2005)
 - Форум Выдержит ли SQLite нагрузку уровня linux.org.ru? (2022)
 - Форум Как правильно организовать логику + потоки qt (2014)
 
- Форум python3 (2019)
 - Форум sqlite (2012)
 - Форум SQLite (2002)
 - Форум sqlite (2004)
 - Форум Компиляция python3 (2018)