public StatisticsDto GetStatistics()
        {
            var states =
                Data.GetEnumeration <JobDto>()
                .Where(j => j.StateName != null)
                .GroupBy(j => j.StateName)
                .ToDictionary(j => j.Key, j => j.Count());

            Func <string, int> getCountIfExists = name => states.ContainsKey(name) ? states[name] : 0;

            var succeded = CounterUtilities.GetCombinedCounter("stats:succeeded");
            var deleted  = CounterUtilities.GetCombinedCounter("stats:deleted");

            var recurringJobs = Data.GetEnumeration <SetDto>().Count(c => c.Key == "recurring-jobs");
            var servers       = Data.GetEnumeration <Dto.ServerDto>().Count();

            var stats = new StatisticsDto
            {
                Enqueued   = getCountIfExists(EnqueuedState.StateName),
                Failed     = getCountIfExists(FailedState.StateName),
                Processing = getCountIfExists(ProcessingState.StateName),
                Scheduled  = getCountIfExists(ScheduledState.StateName),
                Servers    = servers,
                Succeeded  = succeded,
                Deleted    = deleted,
                Recurring  = recurringJobs
            };

            return(stats);
        }
 public override void DecrementCounter(string key, TimeSpan expireIn)
 {
     QueueCommand(() =>
     {
         var counter      = CounterUtilities.IncrementCounter(_data, key, true);
         counter.ExpireAt = DateTime.UtcNow.Add(expireIn);
     });
 }
示例#3
0
 public void IncrementCounter(string key, TimeSpan expireIn)
 {
     QueueCommand(() =>
     {
         var counter      = CounterUtilities.IncrementCounter(key, false);
         counter.ExpireAt = DateTime.UtcNow.Add(expireIn);
     });
 }
 public override void DecrementCounter(string key)
 {
     QueueCommand(() => { CounterUtilities.IncrementCounter(_data, key, true); });
 }
示例#5
0
 public override void IncrementCounter(string key)
 {
     QueueCommand(() => { CounterUtilities.IncrementCounter(key, false); });
 }
示例#6
0
        public override long GetCounter(string key)
        {
            Guard.ArgumentNotNull(key, "key");

            return(CounterUtilities.GetCombinedCounter(_data, key));
        }
示例#7
0
 public void DecrementCounter(string key)
 {
     QueueCommand(() => { CounterUtilities.IncrementCounter(key, true); });
 }