Uzywanie jednego polaczenia sql na wielu watkach ?

4

Jest to bardziej pytanie hipotetyczne, bo sam program moge przerobic. Napisalem zaawansowanego scrapera, ktory nominalnie scrapuje 5 stron. requests-html + selenium --headless. Wyniki przechodza przez double checka na podstawie malej bazy w sqlite, ktora czysci sie kazdego nowego dnia kalendarzowego. Wczoraj sobie potestowalem, zeby puscic tego scrapera asynchronicznie dla skrocenia czasu. Wsio okej tylko wywala mi error ze polaczenie z sql jest na watku A a probowano cos do niego wrzucic z watku B. Jest jakis sposob (sens) zeby te watki zesychronizowac, czy po prostu lepiej na chlopski rozum to przepisac - Globalna tablica do ktorej wszystko jest wrzucane ze wszystkich stron i dopiero na koniec zainicjowac sql.

1

Używanie jak w temacie jest błędem.
W innych języka by się mówiło o puli połączeń, i to jest najbardziej profesjonalne. W Pythone? Nie wiem, poszukaj.

Rozumiesz backgroud tego problemu?
Połaczenie SQL ma stan, na przykład jeśli jest otwarta transakcja - tą transakcję by "widziały" inne wątki, i byłyby srodze zdziwione.
Innym czułym na problem scenariuszem jest INSERT i pozyskanie uzyskanego klucza pierwotnego - na miarę drivera do bazy, jak on to robi.

2

a dlaczego nie dasz każdemu wątkowi jego własnego połączenia? https://www.sqlite.org/threadsafe.html

0

Sql w sumie ujarzmiony (dzieki @abrakadaber :D). Jednak wielowatkowe selenium sie gubi (5 instancji - 5 chromow). Duzo % pisze ze multithreading w selenium nie jest dobrym rozwiazaniem, no nic :C Testuje dalej.

1 użytkowników online, w tym zalogowanych: 0, gości: 1