2016-07-29 8 views
0

は、私はプログラム的に例えば、スケジュールされたタスクを作成してい春のスケジュールされたタスクを取得するにはどうすればいいですか?私の春ブーツアプリで

@Configuration 
@EnableScheduling 
public class AppConfig implements SchedulingConfigurer { 

    @Override 
    public void configureTasks(ScheduledTaskRegistrar taskRegistrar) { 
     taskRegistrar.setScheduler(taskScheduler()); 

     //following loop will get executed according to requirement for now //just looping 0-9 
     for(int i=0;i<10;i++){ 
     MyRunnable myRunnable=new MyRunnable(); 
     myRunnable.setID(i); 
     taskRegistrar.addTriggerTask(myRunnable,new CronTrigger("0 0/15 * * * *")); 
     } 
    } 

    @Bean(destroyMethod="shutdown") 
    public Executor taskScheduler() { 
     return Executors.newScheduledThreadPool(42); 
    } 

    @Bean 
    public MyTask myTask() { 
     return new MyTask(); 
    } 
} 

私はその場でタスクの上にスケジュールを変更するために、いくつかの方法が必要ですが、いくつかのいずれかは、私は上記の作業を完了するために助けることができますか?私はmyRunnable.getID()のようなIDによるタスクの再スケーリングを好むだろう。 ご協力いただければ幸いです。

私は私のコントローラで

@Autowired 
private ScheduledTaskRegistrar scheduledTaskRegistrar; 

を、次の試してみました。しかし、それはあなたがあなたのアプリケーションに新しいCRON式を送信するためのREST API(@RestController)を作成することができ、コントローラ

+0

ウェブアプリケーションですか?任意のストレージを使用していますか? – luboskrnac

+0

はいDBに保存しています –

+0

@AniketKulkarniどのように解決できましたか? – Divs

答えて

0

に注入されていません。その要求では、新しいCRON式でタスクを登録解除して登録することができます。

+0

はい、私はAPIを作成できますが、問題はコントローラのScheduledTaskRegistrarをオートワイヤリング/その他の方法で取得する方法です –

+0

autowiring – luboskrnac

+0

autowiringは別の@Componentクラス – Divs

関連する問題