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

top.zenyoung.quartz.job.TaskJobManager Maven / Gradle / Ivy

package top.zenyoung.quartz.job;

import com.google.common.collect.Lists;
import org.springframework.util.Assert;

import javax.annotation.Nonnull;
import javax.annotation.Nullable;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 工作任务管理器接口
 *
 * @author young
 */
public interface TaskJobManager {
    /**
     * 增加一个工作任务
     *
     * @param jobClass 任务实现类
     * @param jobName  任务名称
     * @param jobCron  cron表达式
     * @param args     参数集合
     */
    void addTaskJob(@Nonnull final Class jobClass, @Nonnull final String jobName,
                    @Nonnull final String jobCron, @Nullable final Map args);

    /**
     * 暂停工作任务
     *
     * @param jobMaps 工作任务集合
     */
    void pauseTaskJobs(@Nonnull final Map, List> jobMaps);

    /**
     * 暂停工作任务
     *
     * @param jobClass 任务实现类
     * @param jobNames 任务名称集合
     */
    default void pauseTaskJobs(@Nonnull final Class jobClass, @Nonnull final String... jobNames) {
        Assert.notEmpty(jobNames, "'jobNames'不能为空");
        pauseTaskJobs(new HashMap, List>(1) {
            {
                put(jobClass, Lists.newArrayList(jobNames));
            }
        });
    }

    /**
     * 恢复工作任务
     *
     * @param jobMaps 工作任务集合
     */
    void resumeJobs(@Nonnull final Map, List> jobMaps);

    /**
     * 恢复工作任务
     *
     * @param jobClass 任务实现类
     * @param jobNames 任务名称集合
     */
    default void resumeJobs(@Nonnull final Class jobClass, @Nonnull final String... jobNames) {
        Assert.notEmpty(jobNames, "'jobNames'不能为空");
        resumeJobs(new HashMap, List>(1) {
            {
                put(jobClass, Lists.newArrayList(jobNames));
            }
        });
    }

    /**
     * 移除工作任务集合
     *
     * @param jobMaps 工作任务集合
     */
    void removeTaskJobs(@Nonnull final Map, List> jobMaps);

    /**
     * 移除工作任务
     *
     * @param jobClass 任务实现类
     * @param jobNames 任务名称集合
     */
    default void removeTaskJobs(@Nonnull final Class jobClass, @Nonnull final String... jobNames) {
        Assert.notEmpty(jobNames, "'jobNames'不能为空");
        removeTaskJobs(new HashMap, List>(1) {
            {
                put(jobClass, Lists.newArrayList(jobNames));
            }
        });
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy