Butterfly Scheduling Introduction
Butterfly Scheduling 是一个轻量级的调度工具,相对而言,Quartz更为大家所熟知,这里主要是介绍一下Butterfly Scheduling,让大家能够熟悉这个小工具。Butterfly Scheduling 的Jar包非常小只有20几k,在项目中添加jenkov-butterfly-scheduling-1.3.9-beta.jar,然后就可以测试。需要说明的是官网(http://butterfly.jenkov.com/scheduling/index.html)上面的1.0版本存在一些bug。
一下是对Butterfly Scheduling的一个介绍,翻译自官网。
Butterfly Scheduling是一个小巧灵活的机会调度api。任务的执行有SchedulerService服务管理,这个服务能够嵌入到一个应用环境里或是单独运行在一个进程里。顺便说明一下,该服务需要自己的线程管理。
Butterfly Scheduling内部提供了一些计划调度的策略,如果这里没有适合你的策略,你可以提供你自己的实现。你也可以提供计划调度失败的处理策略,尝试执行失败的计划。例如:你可以在放弃之前尝试在5分钟内执行三次失败的计划。
嵌入的调度计划
你可以在你的应用里执行一些调度计划。
独立的调度计划
独立的调度计划是非常有用的,特别是当你需要在同一应用里执行大量的不是非常必要的计划任务时候。例如:备份应用a和b的数据库,删除应用c中的文件,备份应用d中的文件等到。
独立的调度计划是在执行一些与应用环境或是web服务相关的计划时候是非常有用的。一个调度计划能够调用JSP, Servlet, Web Service, EJB,或是应用及web服务中的任何其他组件。
事物中的计划
当一个计划需要在一个事物中执行的时候,最有效的方法是通过一个独立的SchedulingService执行一个触发器式的计划任务。这个计划触发JSP, Servlet, Web Service, EJB等等去执行真正的计划。
Butterfly Scheduling的使用
首先创建一个服务:
SchedulerService schedulerService = new SchedulerService();
然后,创建一个计划,注意UrlTask是内置的一个计划,你也可以实现自己的计划,只需要实现IScheduledTask接口即可):
String url = "http://jenkov.com/rss/rss_all.jsp";
UrlTask urlTask = new UrlTask(url);
其次,往服务里添加一个计划:
long timeInterval = 10 * 1000; // one分钟 in milliseconds.
schedulerService.addIntervalScheduledTask(urlTask, timeInterval);
以上是添加一个一定时间间隔的计划调度,你还可以添加一天或是周或是月为单位的计划调度,具体见SchedulerService的方法。
最好,启动计划:
schedulerService.run();
该项目主页:http://butterfly.jenkov.com/scheduling/index.html


支持博主 下回来了希望你有跟好的文章
很有深度,下次多说些细节。哈!