Próbuję wstawić rekordy do Cassandry za pomocą wielowątkowego programu Python. Używam tego programu jednocześnie na 3 komputerach. Przez jakiś czas wstawiane są rekordy, ale później dostaję się poniżej wyjątku. Używam sterownika dostarczonego przez datastax.Jak rozwiązać "cassandra.cluster.NoHostAvailable" w wielowątkowym programie Python
cassandra.cluster.NoHostAvailable
Zrobiłem kilka wyszukiwania i okazało się (źródło: https://datastax.github.io/python-driver/api/cassandra/cluster.html)
wyjątek cassandra.cluster.NoHostAvailable
Raised gdy operacja próby ale wszystkie połączenia są zajęte, nie działające, zamknięte lub spowodowało błędy podczas korzystania.
Moje pytanie brzmi:
1. Czy to normalne wyjątek można by zmierzyć się ze zbyt wielu podłączenia do Cassandry.
2. Jak rozwiązać ten problem w sytuacji, w której chcę utworzyć wiele połączeń/sesji z/z kassandra. (Wiem, że tworzenie zbyt wielu sesji nie jest wskazane, ma wpływ na wydajność serwera, ponieważ każda sesja zużywa garstkę pamięci)
Poniżej znajduje się fragment kodu.
cluster = Cluster(['192.168.1.21'])
session = cluster.connect('myNameSpace')
def insertInToCassandra(catRange):
for x in catRange:
//function to insert records into Cassandra table
ProductRange = [
range(900,920),
range(921,940),
range(941,960),
range(961,980),
range(981,1000)
]
# Make the Pool of workers
pool = ThreadPool(20)
# Open the urls in their own threads
# and return the results
results = pool.map(insertInToCassandra, ProductRange)
#close the pool and wait for the work to finish
pool.close()
pool.join()
Dzięki Jeff za odpowiedź. Teraz RF ma wartość 2, myślę, że muszę go zmienić na 3 –