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