Ejemplo n.º 1
0
        ///// <summary>
        ///// Dequeue message from queue, using sync methods.
        ///// </summary>
        ///// <returns></returns>
        //public IQueueItem Dequeue()
        //{

        //    try
        //    {
        //        CurrentItem = null;
        //        //EnsureSync();

        //        m_fileMessage.DequeueFirstItem()

        //        if (m_fileMessage.CanQueue())
        //        {
        //            //Thread.Sleep(1000);

        //            //string folder = m_fileMessage.GetFirstBatchFolder(FileOrderType);
        //            //if (folder != null)
        //            //{
        //            //    if (m_fileMessage.DequeueFolder(FileOrderType,MaxItemsPerSession) > 0)
        //            //    {
        //            //        return CurrentItem;//.GetMessage();
        //            //    }
        //            //}
        //        }
        //        else
        //        {
        //            Thread.Sleep(1000);
        //        }
        //    }
        //    catch (Exception ex)
        //    {
        //        Netlog.ErrorFormat("error FolderQueue.Dequeue :{0}, Trace:{1} ", ex.Message, ex.StackTrace);
        //    }
        //    return null;
        //}

        /// <summary>
        /// Dequeue message from queue with specified item id , using sync methods.
        /// </summary>
        /// <param name="identifier"></param>
        /// <returns></returns>
        public IQueueItem DequeueItem(string identifier)
        {
            try
            {
                CurrentItem = null;
                //EnsureOperations();
                EnsureRecieve();

                if (m_fileMessage.CanQueue())
                {
                    string filename = m_fileMessage.GetQueueFilename(identifier);
                    var    item     = m_fileMessage.DequeueFile(filename);
                    if (item == null)
                    {
                        return(null);
                    }
                    return(item);//.GetMessage();
                    //if (m_fileMessage.DequeueFile(filename) > 0)
                    //{
                    //    if (CurrentItem != null)
                    //    {
                    //        return CurrentItem.GetMessage();
                    //    }
                    //}
                }
                else
                {
                    Thread.Sleep(1000);
                }
            }
            catch (Exception ex)
            {
                Netlog.ErrorFormat("error FolderQueue.Dequeue :{0}, Trace:{1} ", ex.Message, ex.StackTrace);
            }
            return(null);
        }