Example #1
0
        /// <summary>
        /// Resume (un-pause) all of the <see cref="T:Quartz.ITrigger"/>s
        ///             in the given group.
        /// <para>
        /// If any <see cref="T:Quartz.ITrigger"/> missed one or more fire-times, then the
        ///             <see cref="T:Quartz.ITrigger"/>'s misfire instruction will be applied.
        /// </para>
        /// </summary>
        public override IList <string> ResumeTriggers(GroupMatcher <TriggerKey> matcher)
        {
            var resumedTriggerGroups = new List <string>();

            if (matcher.CompareWithOperator.Equals(StringOperator.Equality))
            {
                var triggerGroupSetKey =
                    RedisJobStoreSchema.TriggerGroupSetKey(matcher.CompareToValue);

                Db.SetRemove(RedisJobStoreSchema.PausedTriggerGroupsSetKey(), triggerGroupSetKey);

                var triggerHashKeysResult = Db.SetMembers(triggerGroupSetKey);

                foreach (var triggerHashKey in triggerHashKeysResult)
                {
                    var trigger = RetrieveTrigger(RedisJobStoreSchema.TriggerKey(triggerHashKey));

                    ResumeTrigger(trigger.Key);

                    if (!resumedTriggerGroups.Contains(trigger.Key.Group))
                    {
                        resumedTriggerGroups.Add(trigger.Key.Group);
                    }
                }
            }
            else
            {
                foreach (var triggerGroupSetKy in Db.SetMembersAsync(RedisJobStoreSchema.TriggerGroupsSetKey()).Result)
                {
                    if (matcher.CompareWithOperator.Evaluate(RedisJobStoreSchema.TriggerGroup(triggerGroupSetKy),
                                                             matcher.CompareToValue))
                    {
                        resumedTriggerGroups.AddRange(ResumeTriggers(GroupMatcher <TriggerKey> .GroupEquals(RedisJobStoreSchema.TriggerGroup(triggerGroupSetKy))));
                    }
                }
            }


            return(resumedTriggerGroups);
        }