コード例 #1
0
ファイル: test_scheduler.py プロジェクト: LucaLanziani/coilmq
 def test_favorReliable(self):
     """ Test the favor reliable delivery scheduler. """
     
     sched = FavorReliableSubscriberScheduler()
     
     conn1 = MockConnection()
     conn1.reliable_subscriber = True
     
     conn2 = MockConnection()
     conn2.reliable_subscriber = False
     
     choice = sched.choice((conn1, conn2), None)
     
     assert choice is conn1, "Expected reliable connection to be selected."
コード例 #2
0
ファイル: test_scheduler.py プロジェクト: khoanx/vmcontroller
    def test_favorReliable(self):
        """ Test the favor reliable delivery scheduler. """

        sched = FavorReliableSubscriberScheduler()

        conn1 = MockConnection()
        conn1.reliable_subscriber = True

        conn2 = MockConnection()
        conn2.reliable_subscriber = False

        choice = sched.choice((conn1, conn2), None)

        assert choice is conn1, "Expected reliable connection to be selected."
コード例 #3
0
ファイル: queue.py プロジェクト: LucaLanziani/coilmq
    def __init__(self, store, subscriber_scheduler=None, queue_scheduler=None):
        """
        @param store: The queue storage backend.
        @type store: L{coilmq.store.QueueStore}
        
        @param subscriber_scheduler: The scheduler that chooses which subscriber to send
                                    messages to.
        @type subscriber_scheduler: L{coilmq.scheduler.SubscriberPriorityScheduler}
        
        @param queue_scheduler: The scheduler that chooses which queue to select for sending
                                    backlogs for a single connection.
        @type queue_scheduler: L{coilmq.scheduler.QueuePriorityScheduler}
        """
        self.log = logging.getLogger('%s.%s' %
                                     (__name__, self.__class__.__name__))

        # Use default schedulers, if they're not specified
        if subscriber_scheduler is None:
            subscriber_scheduler = FavorReliableSubscriberScheduler()

        if queue_scheduler is None:
            queue_scheduler = RandomQueueScheduler()

        # This lock var is required by L{synchronized} decorator.
        self._lock = threading.RLock()

        self.store = store
        self.subscriber_scheduler = subscriber_scheduler
        self.queue_scheduler = queue_scheduler

        self._queues = defaultdict(set)
        self._transaction_frames = defaultdict(lambda: defaultdict(list))
        self._pending = {}
コード例 #4
0
 def _queuemanager(self):
     """
 Returns the configured L{QueueManager} instance to use.
 Can be overridden by subclasses that wish to change out any queue mgr parameters.
 @rtype: L{QueueManager}
 """
     return QueueManager(
         store=MemoryQueue(),
         subscriber_scheduler=FavorReliableSubscriberScheduler(),
         queue_scheduler=RandomQueueScheduler())
コード例 #5
0
ファイル: test_basic_sa.py プロジェクト: vallsv/coilmq
    def _queuemanager(self):
        """
        Returns the configured L{QueueManager} instance to use.
        """
        data_dir = os.path.join(os.getcwd(), 'data')
        if not os.path.exists(data_dir):
            os.makedirs(data_dir)
        configuration = {'qstore.sqlalchemy.url': 'sqlite:///data/coilmq.db'}
        engine = engine_from_config(configuration, 'qstore.sqlalchemy.')
        init_model(engine, drop=True)
        store = SAQueue()

        return QueueManager(store=store,
                            subscriber_scheduler=FavorReliableSubscriberScheduler(),
                            queue_scheduler=RandomQueueScheduler())