예제 #1
0
        /// <summary>
        /// QueueSettings ctor
        /// </summary>
        void LoadQueueSettings()
        {
            XmlTable table = NetConfig.GetCustomConfig("QueueSettings");

            if (table == null)
            {
                throw new ArgumentException("Can not load XmlTable config");
            }

            QueueName               = table.GetValue("name");
            MaxSize                 = table.Get <int>("MaxSize", QueueDefaults.QueueMaxSize);
            DefaultExpiration       = table.Get <int>("DefaultExpiration", 30);
            RemoveExpiredItemOnSync = table.Get <bool>("RemoveExpiredItemOnSync", true);
            SyncInterval            = table.Get <int>("SyncInterval", 30);
            InitialCapacity         = table.Get <int>("InitialCapacity", QueueDefaults.InitialCapacity);
            LoadFactor              = table.Get <float>("LoadFactor", (float)QueueDefaults.LoadFactor);
            SessionTimeout          = table.Get <int>("SessionTimeout", 30);
            MaxSessionTimeout       = table.Get <int>("MaxSessionTimeout", 1440);
            EnableLog               = table.Get <bool>("EnableLog", false);
            InBufferSize            = table.Get <int>("InBufferSize", 8192);
            OutBufferSize           = table.Get <int>("OutBufferSize", 8192);
            SyncConfigFile          = table.GetValue("SyncConfigFile");
            EnableSyncFileWatcher   = table.Get <bool>("EnableSyncFileWatcher", false);
            ReloadSyncOnChange      = table.Get <bool>("ReloadSyncOnChange", false);
            SyncTaskerTimeout       = table.Get <int>("SyncTaskerTimeout", 60);
            EnableAsyncTask         = table.Get <bool>("EnableAsyncTask", true);

            EnableRemoteQueue  = table.Get <bool>("EnableRemoteQueue", false);
            EnableSyncQueue    = table.Get <bool>("EnableSyncQueue", false);
            EnableSessionQueue = table.Get <bool>("EnableSessionQueue", false);
            EnableDataQueue    = table.Get <bool>("EnableDataQueue", false);
            EnableQueueManager = table.Get <bool>("EnableQueueManager", false);

            QueueDefaults.MaxSessionTimeout = MaxSessionTimeout;
            QueueDefaults.SessionTimeout    = SessionTimeout;
            QueueDefaults.DefaultExpiration = DefaultExpiration;
            QueueDefaults.EnableLog         = EnableLog;
        }