コード例 #1
0
ファイル: StateManager.cs プロジェクト: javafun/Revalee
        public void AddTask(RevaleeTask task)
        {
            if (task == null)
            {
                throw new ArgumentNullException("task");
            }

            lock (_SyncRoot)
            {
                _PersistenceProvider.AddTask(task);
            }

            _AwaitingTaskCollection.AddOrReplace(task.CallbackId, task, task.CallbackTime);
            Supervisor.Telemetry.IncrementAwaitingTasksValue();
            ResetTaskAlarm();
        }
コード例 #2
0
        public static TimeSpan OnRetryableFailure(Uri callbackUrl)
        {
            if (callbackUrl == null)
            {
                throw new ArgumentNullException("callbackUrl");
            }

            _FailedCallbackLog.RemoveAllOverdue();
            int retryIndex = _FailedCallbackLog.AddOrReplace(callbackUrl.Authority, () => 0, (oldValue, oldDue) => oldValue + 1, (newValue, oldDue) => DateTime.UtcNow.Add(_FailureTimeWindow));

            return(AssignDelayInterval(retryIndex));
        }