/** * Copyright 2007-2010 非也 * All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation。 * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses. * */ package org.fireflow.engine.modules.schedule; import org.fireflow.engine.context.EngineModule; import org.fireflow.engine.context.RuntimeContext; import org.fireflow.engine.entity.runtime.ScheduleJob; /** * * * @author 非也 * @version 2.0 */ public interface Scheduler extends EngineModule{ public static final String JOB_GROUP_NAME = "org.fireflow.constants.schedule.FIRE_WORKFLOW_JOBS"; public void schedule(ScheduleJob scheduleJob,RuntimeContext runtimeContext); public void unSchedule(ScheduleJob scheduleJob,RuntimeContext runtimeContext); public void onTimerTriggered(ScheduleJob scheduleJob,RuntimeContext runtimeContext); /** * job是否还会被触发。 * @param job * @param runtimeContext * @return */ public boolean ifJobCanBeFiredAgain(ScheduleJob job,RuntimeContext runtimeContext); /** * 调度队列中是否还有job待触发。 * @param runtimeContext * @return */ public boolean hasJobInSchedule(RuntimeContext runtimeContext); }