この記事では、スレッドプーリングと反射メカニズムに基づいてタイミングタスクを実装するJavaの方法について説明します。次のように、参照のために共有してください。
主に次の実装クラスが含まれます。
1。メインクラス:
タスク実行へのエントリ:
メインメソッドを呼び出して、タスク構成の読み込みを開始し、タスクを実行します
yanek.task。 @ param args * / public static void main(string [] args){scheduledexecutorservice scheduexec = newscheduledthreadpool(1); TMETHODNAME(「testa」); i ++){taskmodel tm =(taskmodel)tasks.get(i);2. MyTaskクラスは実行可能なインターフェイスを実装し、メインクラスで呼び出します
yanek.lang.lang.lang.reft.methodをインポートするcom.lang.lang.lang.date; mytask(taskmodel tm){this.taskmodel = tm;} system.out.println( "call at" +(new date()); (taskmodel .getclassname()); e.printstacktrace() e){e .printstacktrace()}}3。TaskModel:タスククラスのカプセル化
パッケージcom.yanek.task; (String MethodName){methodname = methodname} getinitialdelay {return initialdelay; setperiod(this.period = private className;4。XMLReaderタスク構成解決クラス
yanek.io.io.itil.laylist; .document org.jdomement.jdom.input gettasks(){list tasks = new ArrayList(); file(file.exists()&&!isdirectory()){saxbuilder sx = new saxbuilder(); ; list <要素> rootelement.getChildren(); .getChildText( "class"); .out .println(childs.get(i).getChildText( "Method")); ); system.out.println(「最初に実行するのはまだ悪い」 + initialdelay +」秒! "); tmodel.setPeriod(integer.valueof(childs.get(i).getChildText(" inpering "))); system.out.println(childs.get(i).getChildText(" ferion ");)))) ;タスク(tmodel)。 ;)catch(ioexception e) ADタスク構成の終わり! "); returnタスク;}}5。構成ファイル:
<?xml version = "1.0" encoding = "utf-8"?> <taskconfig> <class> com.yanek.task.taska </class> <method> testa </method> <initialdelay> 5 < /initialdelay> <period> 2 </siod> </task> <cask> <class> com.yanek.task.taskb </class> <method> testb </method> <initialdelay> 5 </initialdelay> <期間> 3 </initial> </task> <cask> <class> com.yanek.taskc.taskc > </task> </taskconfig>
6。タスククラスのテスト:
taska taskb taskcは静的メソッドを定義し、これらのクラスの静的メソッドはXMLファイルで構成され、呼び出されます。
パッケージcom.yanek.task; (){system.out.println( "taska testa method call!"); ){system.out.println( "タスクBテスト"); taskc { / ** * @param args * / public static void main(string [] args){system.out.println( "task c test"); taskc testcメソッドコール! ");}}この記事がみんなのJavaプログラミングに役立つことを願っています。