Skip to content

Scheduler (任务调度)

zsh edited this page Feb 20, 2024 · 1 revision

WeChatClient维护了一个全局的任务调度器

public interface Scheduler {


    /**
     * 在指定的延迟后执行一次性任务。
     *
     * @param plugin 插件实例
     * @param task 要执行的任务
     * @param delay 延迟(秒)
     * @return 调度的任务
     */
    Task runTaskLater(Plugin plugin, Runnable task,long delay);

    /**
     * 以固定的周期执行任务。
     *
     * @param plugin 插件实例
     * @param task 要执行的任务
     * @param delay 初始延迟(秒)
     * @param period 执行周期(秒)
     * @return 调度的任务
     */
    Task runTaskTimer(Plugin plugin, Runnable task, long delay, long period);


    /**
     * 立即执行一个任务。
     *
     * @param plugin 插件实例
     * @param task 要执行的任务
     * @return 调度的任务
     */
    Task runTask(Plugin plugin, Runnable task);

}

例如,当你需要调度一个每20秒执行一次的周期任务时

        weChatClient.getScheduler().runTaskTimer(plugin,()->{
            System.out.println("定时任务...");
        },20,0);

你也可以使用 Runnable 的简单包装类 WeChatRunnable

        new WeChatRunnable(){
            @Override
            public void run() {
                System.out.println("周期任务");
            }
        }.runTaskTimer(plugin,20,0);
Clone this wiki locally