1 2 /* 3 * Copyright 2004-2005 OpenSymphony 4 * 5 * Licensed under the Apache License, Version 2.0 (the "License"); you may not 6 * use this file except in compliance with the License. You may obtain a copy 7 * of the License at 8 * 9 * http://www.apache.org/licenses/LICENSE-2.0 10 * 11 * Unless required by applicable law or agreed to in writing, software 12 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 13 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 14 * License for the specific language governing permissions and limitations 15 * under the License. 16 * 17 */ 18 19 /* 20 * Previously Copyright (c) 2001-2004 James House 21 */ 22 package org.quartz; 23 24 /** 25 * <p> 26 * A marker interface for <code>{@link org.quartz.JobDetail}</code> s that 27 * wish to have their state maintained between executions. 28 * </p> 29 * 30 * <p> 31 * <code>StatefulJob</code> instances follow slightly different rules from 32 * regular <code>Job</code> instances. The key difference is that their 33 * associated <code>{@link JobDataMap}</code> is re-persisted after every 34 * execution of the job, thus preserving state for the next execution. The 35 * other difference is that stateful jobs are not allowed to execute 36 * concurrently, which means new triggers that occur before the completion of 37 * the <code>execute(xx)</code> method will be delayed. 38 * </p> 39 * 40 * @see Job 41 * @see JobDetail 42 * @see JobDataMap 43 * @see Scheduler 44 * 45 * @author James House 46 */ 47 public interface StatefulJob extends Job { 48 49 /* 50 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 51 * 52 * Interface. 53 * 54 * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 55 */ 56 57 } 58