Example #1
0
    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))
Example #3
0
    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([]))