示例#1
0
        public override Boolean IsAbnormalExceptionTimeout(Exception ex)
        {
            if (ex == null)
            {
                return(false);
            }

            var exception = ex as DbException;

            if (exception == null)
            {
                return(false);
            }

            Int32  errorCode  = ExceptionUtil.GetDbExceptionErrorCode(exception);
            String errorCodes = timeoutMarkDownBean.MySqlErrorCodes;

            if (!String.IsNullOrEmpty(errorCodes))
            {
                var result = SplitUtil.SplitAsInt32(errorCodes);
                if (result.Contains(errorCode))
                {
                    return(true);
                }
            }

            return(ExceptionUtil.IsTimeoutException(ex));
        }
示例#2
0
        /// <summary>
        /// 自动mark down,怎么区分?
        /// </summary>
        /// <param name="allInOneKey"></param>
        public static void AutoMarkDownADatabase(String allInOneKey)
        {
            lock (lockObj)
            {
                markDownDatabases[allInOneKey] = markdownBean.EnableAutoMarkDown ? MarkDownEnums.AutoMarkDown : MarkDownEnums.FakeAutoMarkDown;

                var schedules = SplitUtil.SplitAsInt32(markdownBean.AutoMarkUpSchedule).ToArray();
                //排序
                Array.Sort <Int32>(schedules);
                markingUpDatabases[allInOneKey] = new MarkUpInfo()
                {
                    PreMarkUp             = false,
                    MarkDownTime          = DateTime.Now,
                    CurrentMarkUpIndex    = 0,
                    MarkUpSchedules       = schedules,
                    MarkUpSuccess         = new Int32[schedules.Length],
                    MarkUpFail            = new Int32[schedules.Length],
                    CurrentMarkUpSchedule = 0,
                    CurrentBatch          = 1,
                    MarkUpArray           = MarkUpInfo.InitMarkUpArray(schedules[0])
                };
            }
        }