All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.logspace.agent.shaded.quartz.DailyTimeIntervalTrigger Maven / Gradle / Ivy

There is a newer version: 0.3.2
Show newest version
/*
 * All content copyright Terracotta, Inc., unless otherwise indicated. All rights reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 
 * use this file except in compliance with the License. You may obtain a copy 
 * of the License at 
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0 
 *   
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
 * License for the specific language governing permissions and limitations 
 * under the License.
 * 
 */
package io.logspace.agent.shaded.quartz;

import java.util.Calendar;
import java.util.Set;

import io.logspace.agent.shaded.quartz.DateBuilder.IntervalUnit;

/**
 * A {@link Trigger} that is used to fire a {@link io.logspace.agent.shaded.quartz.JobDetail}
 * based upon daily repeating time intervals.
 * 
 * 

The trigger will fire every N (see {@link #getRepeatInterval()} ) seconds, minutes or hours * (see {@link #getRepeatIntervalUnit()}) during a given time window on specified days of the week.

* *

For example#1, a trigger can be set to fire every 72 minutes between 8:00 and 11:00 everyday. It's fire times would * be 8:00, 9:12, 10:24, then next day would repeat: 8:00, 9:12, 10:24 again.

* *

For example#2, a trigger can be set to fire every 23 minutes between 9:20 and 16:47 Monday through Friday.

* *

On each day, the starting fire time is reset to startTimeOfDay value, and then it will add repeatInterval value to it until * the endTimeOfDay is reached. If you set daysOfWeek values, then fire time will only occur during those week days period.

* *

The default values for fields if not set are: startTimeOfDay defaults to 00:00:00, the endTimeOfDay default to 23:59:59, * and daysOfWeek is default to every day. The startTime default to current time-stamp now, while endTime has not value.

* *

If startTime is before startTimeOfDay, then it has no affect. Else if startTime after startTimeOfDay, then the first fire time * for that day will be normal startTimeOfDay incremental values after startTime value. Same reversal logic is applied to endTime * with endTimeOfDay.

* * @see DailyTimeIntervalScheduleBuilder * * @since 2.1.0 * * @author James House * @author Zemian Deng */ public interface DailyTimeIntervalTrigger extends Trigger { /** *

* Used to indicate the 'repeat count' of the trigger is indefinite. Or in * other words, the trigger should repeat continually until the trigger's * ending timestamp. *

*/ public static final int REPEAT_INDEFINITELY = -1; /** *

* Instructs the {@link Scheduler} that upon a mis-fire * situation, the {@link DailyTimeIntervalTrigger} wants to be * fired now by Scheduler. *

*/ public static final int MISFIRE_INSTRUCTION_FIRE_ONCE_NOW = 1; /** *

* Instructs the {@link Scheduler} that upon a mis-fire * situation, the {@link DailyTimeIntervalTrigger} wants to have it's * next-fire-time updated to the next time in the schedule after the * current time (taking into account any associated {@link Calendar}, * but it does not want to be fired now. *

*/ public static final int MISFIRE_INSTRUCTION_DO_NOTHING = 2; /** *

Get the interval unit - the time unit on with the interval applies.

* *

The only intervals that are valid for this type of trigger are {@link IntervalUnit#SECOND}, * {@link IntervalUnit#MINUTE}, and {@link IntervalUnit#HOUR}.

*/ public IntervalUnit getRepeatIntervalUnit(); /** *

* Get the the number of times for interval this trigger should * repeat, after which it will be automatically deleted. *

* * @see #REPEAT_INDEFINITELY */ public int getRepeatCount(); /** *

* Get the the time interval that will be added to the DateIntervalTrigger's * fire time (in the set repeat interval unit) in order to calculate the time of the * next trigger repeat. *

*/ public int getRepeatInterval(); /** * The time of day to start firing at the given interval. */ public TimeOfDay getStartTimeOfDay(); /** * The time of day to complete firing at the given interval. */ public TimeOfDay getEndTimeOfDay(); /** * The days of the week upon which to fire. * * @return a Set containing the integers representing the days of the week, per the values 1-7 as defined by * {@link java.util.Calendar#SUNDAY} - {@link java.util.Calendar#SATURDAY}. */ public Set getDaysOfWeek(); /** *

* Get the number of times the DateIntervalTrigger has already * fired. *

*/ public int getTimesTriggered(); public TriggerBuilder getTriggerBuilder(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy