コード例 #1
0
        public QueueTypeConsumerBusiness(IQueueTypeController queueTypeController,
                                         IQueueItemController queueItemController,
                                         QueueType type)
        {
            _queueTypeController = queueTypeController;
            _queueItemController = queueItemController;
            _type = type;
            _event = new AutoResetEvent(true);
            _pending = new Collection<QueueItem>();
            _executing = new Collection<QueueItem>();

            log.InfoFormat("QueueTypeConsumerBusiness [construtor] para {0}", type);
        }
コード例 #2
0
        private void AddQueue(QueueType queueType)
        {
            lock (_queueTypes)
                if (_queueTypes.ContainsKey(queueType))
                {
                    log.WarnFormat("AddQueue [abortado] para {0}", queueType);
                    return;
                }

            var thread = new Thread(() => ConsumeBusinessRunner(queueType));

            lock (_queueTypes)
                _queueTypes.Add(queueType, thread);

            thread.Start();
        }
コード例 #3
0
 public QueueTypeConsumerBusiness GetInstance(QueueType queueType)
 {
     return new QueueTypeConsumerBusiness(_kernel.Get<IQueueTypeController>(),
         _kernel.Get<IQueueItemController>(),
         queueType);
 }
コード例 #4
0
 private void ConsumeBusinessRunner(QueueType queueType)
 {
     _consumerFactory.GetInstance(queueType).Consume();
 }
コード例 #5
0
 void UpdateType()
 {
     lock (this)
         _type = _queueTypeController.Select(_type.Id);
 }
コード例 #6
0
 public void Update(QueueType obj)
 {
     throw new NotImplementedException();
 }
コード例 #7
0
 public void Insert(QueueType obj)
 {
     throw new NotImplementedException();
 }
コード例 #8
0
 public bool Equals(QueueType obj)
 {
     return(Equals(Id, obj.Id));
 }
コード例 #9
0
ファイル: QueueItem.cs プロジェクト: rubenlr/ServiceQueue
 public bool Equals(QueueType obj)
 {
     return Equals(Id, obj.Id);
 }