コード例 #1
0
ファイル: CacheManager.cs プロジェクト: yinguopeng/SmartSql
        public void ClearQueue()
        {
            var session = SmartSqlMapper.SessionStore.LocalSession;

            if (SessionMappedRequestQueue.ContainsKey(session.Id))
            {
                SessionMappedRequestQueue.Remove(session.Id);
            }
        }
コード例 #2
0
ファイル: CacheManager.cs プロジェクト: yinguopeng/SmartSql
        public void FlushQueue()
        {
            var session = SmartSqlMapper.SessionStore.LocalSession;

            if (SessionMappedRequestQueue.ContainsKey(session.Id))
            {
                var currentQueue = SessionMappedRequestQueue[session.Id];
                while (currentQueue.Count > 0)
                {
                    var reqContext = currentQueue.Dequeue();
                    Flush(reqContext);
                }
                SessionMappedRequestQueue.Remove(session.Id);
            }
        }
コード例 #3
0
ファイル: CacheManager.cs プロジェクト: yinguopeng/SmartSql
        public void TriggerFlush(RequestContext context)
        {
            var  session       = SmartSqlMapper.SessionStore.LocalSession;
            bool isTransaction = session != null && session.Transaction != null;

            if (isTransaction)
            {
                Queue <RequestContext> currentQueue;
                if (SessionMappedRequestQueue.ContainsKey(session.Id))
                {
                    currentQueue = SessionMappedRequestQueue[session.Id];
                }
                else
                {
                    currentQueue = new Queue <RequestContext>();
                    SessionMappedRequestQueue.Add(session.Id, currentQueue);
                }
                currentQueue.Enqueue(context);
            }
            else
            {
                Flush(context);
            }
        }