Ejemplo n.º 1
0
        public PriorityFsQueue(IQProperties qp)
            : base(qp.QueueName)
        {
            int numProcs         = Environment.ProcessorCount;
            int concurrencyLevel = numProcs * 2;
            int initialCapacity  = 101;

            QueueList = new ConcurrentDictionary <Ptr, IQueueItem>(concurrencyLevel, initialCapacity);

            CommitMode = (CommitMode)(int)qp.CommitMode;
            CoverMode  = qp.Mode;

            if (CoverMode == CoverMode.FileStream)
            {
                DbLiteSettings settings = new DbLiteSettings()
                {
                    Name       = qp.QueueName,
                    CommitMode = (CommitMode)(int)qp.CommitMode,
                    DbPath     = AgentManager.Settings.QueuesPath
                };
                //settings.SetFast();
                QueueHost queueHost = qp.GetRoutHost();
                m_fs = new FileMessage(queueHost);

                //m_db = new PersistentBinary<IQueueItem>(settings);
                ////m_db = new PersistentDictionary(settings);
                //m_db.BeginLoading += M_db_BeginLoading;
                //m_db.LoadCompleted += M_db_LoadCompleted;
                //m_db.ErrorOcurred += M_db_ErrorOcurred;
                //m_db.ClearCompleted += M_db_ClearCompleted;
                ////m_db.ItemChanged += M_db_ItemChanged;

                //m_db.ItemLoaded = (item) =>
                //{
                //    this.ReEnqueue(item);
                //};

                if (qp.ReloadOnStart)
                {
                    QLogger.InfoFormat("PriorityComplexQueue will load items to : {0}", qp.QueueName);
                }
                else
                {
                    QLogger.InfoFormat("PriorityComplexQueue will clear all items from : {0}", qp.QueueName);
                }

                //m_db.ReloadOrClearPersist(qp.ReloadOnStart);

                m_fs.ReloadItemsTo(0, (IQueueItem item) =>
                {
                    this.ReEnqueue(item);
                });
            }
        }
Ejemplo n.º 2
0
        public PersistQueue(IQProperties qp)
        {
            int numProcs         = Environment.ProcessorCount;
            int concurrencyLevel = numProcs * 2;
            int initialCapacity  = 101;

            DbLiteSettings settings = new DbLiteSettings()
            {
                Name       = qp.QueueName,
                CommitMode = (CommitMode)(int)qp.CommitMode,
                DbPath     = AgentManager.Settings.QueuesPath
            };

            //settings.SetFast();
            m_db = new PersistentBinary <IQueueItem>(settings);
            //m_db = new PersistentDictionary(settings);
            m_db.BeginLoading   += M_db_BeginLoading;
            m_db.LoadCompleted  += M_db_LoadCompleted;
            m_db.ErrorOcurred   += M_db_ErrorOcurred;
            m_db.ClearCompleted += M_db_ClearCompleted;
            //m_db.ItemChanged += M_db_ItemChanged;

            m_db.ItemLoaded = (item) =>
            {
                this.ReEnqueue(item);
            };

            if (qp.ReloadOnStart)
            {
                QLogger.InfoFormat("PersistQueue will load items to : {0}", qp.QueueName);
            }
            else
            {
                QLogger.InfoFormat("PersistQueue will clear all items from : {0}", qp.QueueName);
            }

            m_db.ReloadOrClearPersist(qp.ReloadOnStart);
        }
Ejemplo n.º 3
0
 private void M_db_ClearCompleted(object sender, EventArgs e)
 {
     QLogger.InfoFormat("PriorityComplexQueue ClearCompleted : {0}", m_db.Name);
 }
Ejemplo n.º 4
0
 protected override void OnMessageReceived(QueueItemEventArgs e)
 {
     base.OnMessageReceived(e);
     QLogger.InfoFormat("PriorityPersistQueue OnMessageReceived : Host:{0}, Item:{1}", this.Name, e.Item.Print());
 }
Ejemplo n.º 5
0
 protected override void OnErrorOccured(QueueItemEventArgs e)
 {
     base.OnErrorOccured(e);
     QLogger.InfoFormat("PriorityPersistQueue OnError : Host:{0}, message:{1}", this.Name, e.Message);
 }
Ejemplo n.º 6
0
 private void M_db_BeginLoading(object sender, EventArgs e)
 {
     QLogger.InfoFormat("PriorityComplexQueue BeginLoading : {0}", m_db.Name);
 }
Ejemplo n.º 7
0
 private void M_db_LoadCompleted(object sender, Generic.GenericEventArgs <string, int> e)
 {
     QLogger.InfoFormat("PriorityComplexQueue LoadCompleted : {0}, Count:{1}", e.Args1, e.Args2);
 }
Ejemplo n.º 8
0
 protected override void OnItemChanged(string action, string key, IPersistItem value)
 {
     base.OnItemChanged(action, key, value);
     QLogger.InfoFormat("PersistentQueue OnItemChanged : Name:{0}", this.Name, action, key, key == null ? "" : value.Print());
 }
Ejemplo n.º 9
0
 protected override void OnInitilaized(EventArgs e)
 {
     base.OnInitilaized(e);
     QLogger.InfoFormat("PersistentQueue OnInitilaized : Name:{0}", this.Name);
 }
Ejemplo n.º 10
0
 protected override void OnErrorOcurred(string action, string message)
 {
     base.OnErrorOcurred(action, message);
     QLogger.InfoFormat("PersistentQueue OnError : Name:{0}, action:{1}, message:{2}", this.Name, action, message);
 }
Ejemplo n.º 11
0
 protected override void OnMessageArrived(QueueItemEventArgs e)
 {
     base.OnMessageArrived(e);
     QLogger.InfoFormat("PriorityMemQueue OnMessageArrived : Host:{0}, Item:{1}", this.Host, e.Item.Print());
 }
Ejemplo n.º 12
0
 private void M_db_BeginLoading(object sender, EventArgs e)
 {
     QLogger.InfoFormat("PersistQueue BeginLoading : {0}", m_db.Name);
 }