-
Notifications
You must be signed in to change notification settings - Fork 20
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);