Created
April 22, 2015 07:32
-
-
Save sontek/4ca95f5c5aa539663eaf to your computer and use it in GitHub Desktop.
Single process cassandra
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import time | |
import uuid | |
from threading import Event | |
from cassandra.cluster import Cluster | |
from cassandra.query import dict_factory | |
start_time = time.time() | |
c = Cluster(['127.0.0.1']) | |
s = c.connect('test') | |
s.row_factory = dict_factory | |
class PagedResultHandler(object): | |
def __init__(self, future): | |
self.error = None | |
self.finished_event = Event() | |
self.future = future | |
self.future.add_callbacks( | |
callback=self.handle_page, | |
errback=self.handle_error) | |
self.rows = [] | |
def handle_page(self, rows): | |
self.rows += rows | |
if self.future.has_more_pages: | |
self.future.start_fetching_next_page() | |
else: | |
self.finished_event.set() | |
def handle_error(self, exc): | |
self.error = exc | |
print(exc) | |
self.finished_event.set() | |
future = s.execute_async(""" | |
SELECT * | |
FROM response | |
WHERE survey_id = 100326883 | |
AND hour_created in (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24) | |
""") | |
handler = PagedResultHandler(future) | |
handler.finished_event.wait() | |
print(len(handler.rows)) | |
print("--- %s seconds ---" % (time.time() - start_time)) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment