#python #cassandra #rabbitmq
#python #Кассандра #rabbitmq
Вопрос:
Я ищу возможность использования сеанса Cassandra, совместно используемого несколькими потоками pythons. Что такое мой поток, у меня есть потребитель rabbitmq. Для каждого полученного сообщения потребитель вставляет данные в Cassandra. Есть 3 потребителя, каждому потребителю предоставляется объект кластера Cassandra. Когда потребитель получает сообщение, он использует этот кластерный объект и вставляет его в cassandra. Но когда сообщение session.execute(query)
получено, оно застревает.
ap = PlainTextAuthProvider(username=self.connection_params['username'],
password=self.connection_params['password'])
cluster = Cluster(contact_points=self.connection_params['contact_points'],
port=self.connection_params['port'], idle_heartbeat_interval=10,
auth_provider=ap, connect_timeout=30, protocol_version=3,
load_balancing_policy=DCAwareRoundRobinPolicy(), monitor_reporting_enabled=True)
session = self.cluster.connect()
session.set_keyspace(self.connection_params['keyspace'])
session.row_factory = dict_factory
session.encoder.mapping[list] = session.encoder.cql_encode_tuple
Rabbitmq onMessage Я передаю этот объект сеанса.
Комментарии:
1. посмотрите документацию — в ней объясняется, как использовать драйвер Python из нескольких потоков
2. @AlexOtt я пробовал, но это не работает.