Article View: pl.comp.lang.python
Article #27386Re: sqlite3, baza w pamięci i wielowątkowość
From: Piotr Husiatynski
Date: Thu, 18 Mar 2010 18:30
Date: Thu, 18 Mar 2010 18:30
28 lines
2346 bytes
2346 bytes
Dnia 18.03.2010 królewna <królewna@ee.pl> napisał/a:
> Mam problem, gdyż chciałabym użyć tablicy, która mieści się w pamięci
> (definicja przez sqlite3.connect(":memory:") ) i nie wiem jak sprawić
> aby ta sama baza była widziana w różnych wątkach. Jeśli chcę to samo
> zrobić z bazą w pliku to nie ma problemu.
>
> Nie mogę przekazać obiektu connection ani cursor gdyż wyskakuje mi
>
> ProgrammingError: SQLite objects created in a thread can only be used in
> that same thread.The object was created in thread id -1219066176 and
> this is thread id -1224475792
>
> jeśli natomiast otwieram różne połączenia to de facto podłączam się do
> różnych baz. Czy w takim razie najlepszym rozwiązaniem jest napisanie
> jakiegoś wrappera na dostęp do bazy? Nie ma prostszej metody?
>
> U mnie jest jeszcze prosta sytuacja gdyż wątki są tworzone w ramach
> jednego programu (więc można ewentualnie stowrzyć właśnie taki wrapper)
> jednak co jeśli dwa oddzielne programy chciałyby mieć dostęp do tej
> samej bazy sqlite rezydującej w pamięci? Należałoby wtedy stworzyć nowy
> proces, który by tylko służył za pośrednika dostępu do bazy?
SQLite jest na tyle "inteligentne", żeby nie pozwolić na ściganie się wątków w
zapisie do bazy. Rozwiązanie jest takie, żeby robić to tylko z głównego wątku.
Dlaczego wątki w pythonie?
--
Piotr Husiatyński
Technical Details
Message-ID:
<slrnhq4s9c.qg4.husio@oceanic.wsisiz.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!plix.pl!newsfeed1.plix.pl!wsisiz.edu.pl!not-for-mailReferences:
<hnt17s$ij6$1@news.task.gda.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!nf1.ipartners.pl!ipartners.pl!plix.pl!newsfeed1.plix.pl!wsisiz.edu.pl!not-for-mail From: Piotr Husiatynski <husio@gmail.com> Newsgroups: pl.comp.lang.python Subject: Re: sqlite3, baza w pamięci i wielowątkowość Date: Thu, 18 Mar 2010 18:30:04 +0000 (UTC) Organization: WSISiZ Lines: 28 Message-ID: <slrnhq4s9c.qg4.husio@oceanic.wsisiz.edu.pl> References: <hnt17s$ij6$1@news.task.gda.pl> Reply-To: Piotr Husiatynski <phusiatynski@gmail.com> NNTP-Posting-Host: oceanic.wsisiz.edu.pl Mime-Version: 1.0 X-Trace: portraits.wsisiz.edu.pl 1268937004 3985 2001:1a68:a::33 (18 Mar 2010 18:30:04 GMT) X-Complaints-To: abuse@wsisiz.edu.pl NNTP-Posting-Date: Thu, 18 Mar 2010 18:30:04 +0000 (UTC) User-Agent: slrn/0.9.9p1 (Linux) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit