def __init__(self, db_settings, max_queue_len=None): # There is no upper limit on the queue length by default if not max_queue_len: max_queue_len = -1 db_settings = self._filter_pool_settings(db_settings) # Create delivery queue for database statements to be executed self._queue = DeliveryQueue( self._process_statement, drop_callback=self._on_queue_drop, max_queue_len=max_queue_len, # Max parallel statements - should correspond with connection count max_active_queue_len=db_settings['pool_size'], # How often to retry deliver some retry_after_s=5) self._stats = DeliveryStats(STATEMENTS_LATE_LIMIT_SECONDS) self._drop_count = 0 # Create db-pool with the provided arguments self._db_pool = self._create_db_pool(**db_settings) self._second_db_pool = None self._suspended = False
def test_deferred_always_with_drops(self): p = Processor('deferred_always') q = DeliveryQueue(p.accept, max_queue_len=20, max_active_queue_len=1, retry_after_s=0.1) yield self._test_generic(q, range(50), p.get_result_list, [0] + range(30, 50))
def __init__(self, host, port, max_queue_len=2048, max_active_queue_len=100, retry_after_s=5, start_suspended=False): self._link = ReporterJsonLinkClient(self._connection_made_int, self._received_message) self._queue = DeliveryQueue(self._link.sendMessage, drop_callback=self.on_drop, max_queue_len=max_queue_len, max_active_queue_len=max_active_queue_len, retry_after_s=retry_after_s, start_suspended=start_suspended) self._connector = reactor.connectTCP(host, port, self._link)
def test_deferred_always(self): p = Processor('deferred_always') q = DeliveryQueue(p.accept, max_active_queue_len=5, retry_after_s=0.1) yield self._test_generic(q, range(10), p.get_result_list)
def test_second(self): p = Processor('second') q = DeliveryQueue(p.accept, max_active_queue_len=3, retry_after_s=0.1) yield self._test_generic(q, set(range(10)), p.get_result_set)
def test_always(self): p = Processor('always') q = DeliveryQueue(p.accept) yield self._test_generic(q, range(10), p.get_result_list)
def test_exception(self): p = Processor('exception') q = DeliveryQueue(p.accept, max_active_queue_len=1, retry_after_s=0.1) yield self._test_generic(q, set(range(10)), p.get_result_set, set([]))