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

org.directwebremoting.util.StaticTimer Maven / Gradle / Ivy

Go to download

DWR is easy Ajax for Java. It makes it simple to call Java code directly from Javascript. It gets rid of almost all the boiler plate code between the web browser and your Java code.

There is a newer version: 3.0.2-RELEASE
Show newest version
/*
 * Copyright 2005 Joe Walker
 *
 * 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 org.directwebremoting.util;

import java.util.Date;
import java.util.Timer;
import java.util.TimerTask;

/**
 * A {@link Timer} can manage many {@link TimerTask}s, but each {@link Timer}
 * requires a new thread to operate, so it makes more sense to share a Timer
 * amongst man {@link TimerTask}s.
 * 
 * 

There are a number of things that this class does not do that it perhaps * should, for example, to count the number of outstanding tasks, and to drop * the thread when there are none, however in a server using reverse ajax it is * likely that there will be another one soon, and a lightly loaded server is * not in need of careful thread management. * @author Joe Walker [joe at getahead dot ltd dot uk] */ public class StaticTimer { /** * Schedules the specified task for execution after the specified delay. * @see Timer#schedule(TimerTask, long) * @param task task to be scheduled. * @param delay delay in milliseconds before task is to be executed. */ public static void schedule(TimerTask task, long delay) { getTimer().schedule(task, delay); } /** * Schedules the specified task for execution at the specified time. If * the time is in the past, the task is scheduled for immediate execution. * @see Timer#schedule(TimerTask, Date) * @param task task to be scheduled. * @param time time at which task is to be executed. */ public static void schedule(TimerTask task, Date time) { getTimer().schedule(task, time); } /** * Schedules the specified task for repeated fixed-delay execution, * beginning after the specified delay. Subsequent executions take place * at approximately regular intervals separated by the specified period. * @see Timer#schedule(TimerTask, long, long) * @param task task to be scheduled. * @param delay delay in milliseconds before task is to be executed. * @param period time in milliseconds between successive task executions. */ public static void schedule(TimerTask task, long delay, long period) { getTimer().schedule(task, delay, period); } /** * Schedules the specified task for repeated fixed-delay execution, * beginning at the specified time. Subsequent executions take place at * approximately regular intervals, separated by the specified period. * @see Timer#schedule(TimerTask, Date, long) * @param task task to be scheduled. * @param firstTime First time at which task is to be executed. * @param period time in milliseconds between successive task executions. */ public static void schedule(TimerTask task, Date firstTime, long period) { getTimer().schedule(task, firstTime, period); } /** * Schedules the specified task for repeated fixed-rate execution, * beginning after the specified delay. Subsequent executions take place * at approximately regular intervals, separated by the specified period. * @see Timer#scheduleAtFixedRate(TimerTask, Date, long) * @param task task to be scheduled. * @param delay delay in milliseconds before task is to be executed. * @param period time in milliseconds between successive task executions. */ public static void scheduleAtFixedRate(TimerTask task, long delay, long period) { getTimer().scheduleAtFixedRate(task, delay, period); } /** * Schedules the specified task for repeated fixed-rate execution, * beginning at the specified time. Subsequent executions take place at * approximately regular intervals, separated by the specified period. * @see Timer#scheduleAtFixedRate(TimerTask, Date, long) * @param task task to be scheduled. * @param firstTime First time at which task is to be executed. * @param period time in milliseconds between successive task executions. */ public static void scheduleAtFixedRate(TimerTask task, Date firstTime, long period) { getTimer().scheduleAtFixedRate(task, firstTime, period); } /** * Create a new {@link Timer} if one doesn't already exist. * @return the static Timer */ private static Timer getTimer() { synchronized (timerLock) { if (timer == null) { timer = new Timer(); } } return timer; } /** * To synchronize access to the creation of timer */ private static Object timerLock = new Object(); /** * The shared Timer */ protected static Timer timer; }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy