package Ġcom . example . callable _ task let Ċ Ċ import Ġorg . springframework . batch . core . Job Ċ import Ġorg . springframework . batch . core . Step Ċ import Ġorg . springframework . batch . core . configuration . annotation . Enable Batch Processing Ċ import Ġorg . springframework . batch . core . configuration . annotation . Job BuilderFactory Ċ import Ġorg . springframework . batch . core . configuration . annotation . Step BuilderFactory Ċ import Ġorg . springframework . batch . core . configuration . annotation . Step Scope Ċ import Ġorg . springframework . batch . core . step . task let . Callable Task let Adapter Ċ import Ġorg . springframework . batch . core . step . task let . Method Inv oking Task let Adapter Ċ import Ġorg . springframework . batch . repeat . Repeat Status Ċ import Ġorg . springframework . beans . factory . annotation . Value Ċ import Ġorg . springframework . boot . autoconfigure . SpringBoot Application Ċ import Ġorg . springframework . boot . run Application Ċ import Ġorg . springframework . context . annotation . Bean Ċ import Ġjava . util . concurrent . Callable Ċ Ċ @ Enable Batch Processing Ċ @ SpringBoot Application Ċ class ĠCallable Task let Application Ġ{ ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġjob 1 ( job BuilderFactory : ĠJob BuilderFactory , Ġstep 1 : ĠStep , Ġstep 2 : ĠStep ): ĠJob Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjob BuilderFactory . get (" basic job ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. start ( step 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. next ( step 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġstep 1 ( step BuilderFactory : ĠStep BuilderFactory ): ĠStep Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstep BuilderFactory . get (" step 1 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. task let ( task let 1 ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġtask let 1 (): ĠCallable Task let Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcallable Task let Adapter Ġ= ĠCallable Task let Adapter () ĊĠĠĠĠĠĠĠ Ġcallable Task let Adapter . set Callable ( callable Object ()) ĊĠĠĠĠĠĠĠ Ġreturn Ġcallable Task let Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġcallable Object (): ĠCallable < Repeat Status > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCallable < Repeat Status > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ================================ ===== åĪ¥ ãĤ¹ ãĥ¬ ãĥĥãĥī ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" HelloWorld ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRepeat Status . FINISHED ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġstep 2 ( step BuilderFactory : ĠStep BuilderFactory ): ĠStep Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġstep BuilderFactory . get (" step 2 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. task let ( task let 2 ( null )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Step Scope ĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġtask let 2 (@ Value ("#{ job Parameters [' message '] }") Ġmessage : ĠString ?): ĠMethod Inv oking Task let Adapter Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmethod Inv oking Task let Adapter Ġ= ĠMethod Inv oking Task let Adapter () ĊĠĠĠĠĠĠĠ Ġmethod Inv oking Task let Adapter . setTarget Object ( service ()) ĊĠĠĠĠĠĠĠ Ġ// Ġ æĸĩåŃĹåĪĹ ãģ§ ãĥ¡ ãĤ½ãĥĥãĥī åĲį è¨ĺ è¿° ãģ¨ ãģĭ ãĢĤãĢĤ ãĢĤ or z ĊĠĠĠĠĠĠĠ Ġmethod Inv oking Task let Adapter . setTarget Method (" service Method ") ĊĊĠĠĠĠĠĠĠ Ġprintln (" ---- job Parameters [' message '] ") ĊĠĠĠĠĠĠĠ Ġprintln ( message ) ĊĠĠĠĠĠĠĠ Ġprintln (" ---- ") ĊĠĠĠĠĠĠĠ Ġmethod Inv oking Task let Adapter . set Arguments ( array Of ( message )) ĊĠĠĠĠĠĠĠ Ġreturn Ġmethod Inv oking Task let Adapter ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Bean ĊĠĠĠ Ġfun Ġservice (): ĠCustom Service Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCustom Service () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Application < Callable Task let Application >(* args ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠCustom Service Ġ{ ĊĠĠĠ Ġfun Ġservice Method ( message : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln (" ================ ======== ==" ) ĊĠĠĠĠĠĠĠ Ġprintln (" service Ġmethod 's Ġargs Ġ==> Ġ$ message ") ĊĠĠĠĠĠĠĠ Ġprintln (" ================ ======== ==" ) ĊĠĠĠ Ġ} Ċ } Ċ