Пример #1
0
        protected override bool TryDequeue(Ptr ptr, out IQueueItem item)
        {
            var res = m_db.TryRemove(ptr.Identifier, out item);

            OnTryDequeue(ptr, item, res);
            return(res);
        }
Пример #2
0
        protected override bool TryDequeue(Ptr ptr, out IQueueItem item)
        {
            if (CoverMode == CoverMode.Persistent)
            {
                if (QueueList.TryRemove(ptr, out item))
                {
                    if (CommitMode == CommitMode.OnDisk)
                    {
                        IQueueItem item_pers = null;
                        if (m_db.TryRemove(ptr.Identifier, out item_pers))
                        {
                            OnTryDequeue(ptr, item, true);
                            return(true);
                        }
                    }
                    else
                    {
                        return(PersistItemRemove(ptr));
                    }
                }
            }
            else
            {
                if (QueueList.TryRemove(ptr, out item))
                {
                    return(true);
                }
            }

            return(false);
        }
Пример #3
0
        bool PersistItemRemove(Ptr ptr)
        {
            IQueueItem persistItem = null;

            Task tsk = Task.Factory.StartNew(() =>
                                             m_db.TryRemove(ptr.Identifier, out persistItem)
                                             );

            return(true);
        }