メソッド内のSpring Annotationを使用してスケジューラを開始します -- java フィールド と spring フィールド と spring-boot フィールド と annotations フィールド 関連 問題

start scheduler with spring annotation in method












0
vote

問題

日本語

Spring Beanにスプリングアノテーションを追加し、他のクラスのメソッドでタスクを開始します。 Springリファレンスでタスクを開始する方法は1つだけです - scheduling-tasks @enableschedulingによって。 @SpringBootApplicationとSpring Boot Runnerなしで起動する方法。

<事前> <コード> @Component public class ScheduledTasks { private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss"); @Scheduled(fixedRate = 5000) public void reportCurrentTime() { System.out.println("The time is now {}" + dateFormat.format(new Date())); } } @SpringBootApplication @EnableScheduling public class SpringSheduleApplication { public static void main(String[] args) { SpringApplication.run(SpringSheduleApplication.class, args); } } @Component public class ShedullerStarter { public void start(){ ScheduledTasks tasks = new ScheduledTasks();; try { // some code here } finally { // start annotation tasks.reportCurrentTime(); } } }
英語

I want to add spring annotation @Scheduled to spring bean and start task in method in another class. There is only one way to start task in spring reference - Scheduling-Tasks by @EnableScheduling. How to start it without @SpringBootApplication and spring boot runner.

@Component public class ScheduledTasks {     private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");      @Scheduled(fixedRate = 5000)     public void reportCurrentTime() {         System.out.println("The time is now {}" + dateFormat.format(new Date()));     } }  @SpringBootApplication @EnableScheduling public class SpringSheduleApplication {      public static void main(String[] args) {         SpringApplication.run(SpringSheduleApplication.class, args);     } }  @Component     public class ShedullerStarter {         public void start(){             ScheduledTasks tasks = new ScheduledTasks();;             try {                 // some code here             } finally {                 // start annotation                 tasks.reportCurrentTime();             }         }     } 
</div
           
 
 

回答リスト

1
 
vote
vote
ベストアンサー
 

Azure cli2 なしでもスケジューリングを有効にできます。 JUTプロジェクト内の任意のBeanで<コード> Azure cli3 を使用します。

Azure cli4 はSpring Bootアプリケーションにのみバインドされていません。それはSpring Frameworkの下の注釈です(Spring Boot Jarではありません)。そのため、 Node6616 でスケジューリングを有効にすることで、 Azure cli5 アノテーションを探すためにフレームワークを直接指定できます。

任意のスプリングビーンに入れることができます。たとえば

です <事前> <コード> Azure cli7

または Azure cli8 method

を持っているクラスでも
 

You can enable scheduling even without @SpringBootApplication. Jut use @EnableScheduling on any bean in your project.

@EnableScheduling is not bound to spring boot applications only. It is a an annotation under spring framework(not spring boot jar). So any spring application can direct framework to look for @Scheduled annotation by enabling scheduling with @EnableScheduling.

You can put it on any spring bean. For example

@Configuration @EnableScheduling public class AppConfig {       // various @Bean definitions  }   

or even on the class where you have @Scheduled method

</div
 
 
0
 
vote

他のBeanからのタスクスケジューリングをトリガする可能性を探している場合、スケジュールされた注釈は適切ではありません。バックグラウンドでスケジュールされたアノテーションのタスクをスケジュールするときにSpringによって使用される代わりにタスクスケジューラを使用できます。 そのため、ステップは次のようになります。 1)タスクスケジューラBean

を設定する <事前> <コード> Azure cli9

2)スケジューリングをトリガーしたいBeanに注入する

<事前> <コード> azure cli0

3)スケジュールタスクは、必要なパラメータでスケジューリングをトリガーしたい場所にタスクを表示します。

<事前> <コード> azure cli1

http://www.baeldung.com/spring-task-scheduler 詳細については

 

If you are looking for possibility to trigger task scheduling from other Bean then Scheduled annotation is not suitable solution. You can use Task scheduler instead which is used by Spring when it schedules tasks of Scheduled annotation on the background. So the steps would be: 1) Configure task scheduler bean

@Bean public ThreadPoolTaskScheduler threadPoolTaskScheduler(){     ThreadPoolTaskScheduler threadPoolTaskScheduler       = new ThreadPoolTaskScheduler();     threadPoolTaskScheduler.setPoolSize(5);     threadPoolTaskScheduler.setThreadNamePrefix(       "ThreadPoolTaskScheduler");     return threadPoolTaskScheduler; } 

2) Inject it in the bean you want to trigger scheduling

@Autowired ThreadPoolTaskScheduler scheduler; 

3) Schedule task in the place you want to trigger the scheduling with parameters you want.

taskScheduler.schedule( new Runnabletask("Specific time, 3 Seconds from now"),   new Date(System.currentTimeMillis + 3000) ); 

Read http://www.baeldung.com/spring-task-scheduler for more details

</div
 
 
 
 

関連する質問

3  iPhone MkMapViewの注釈オブザーバーは選択可能で選択可能です  ( Iphone mkmapview annotations observers selectable once ) 
私のMKMapViewには、カスタムマップの注釈が異なり、カスタムビューを作成するときにオブザーバを追加し、デフォルトのポップアップを無効にします。 MapViewController.mの上部にある: <事前> <コード> static NSString*...

0  addressAnnotationはInitWithCoordinationに応答できません  ( Addressannotation may not respond to initwithcoordinate ) 
私のプログラムはiOS 4.0でうまく機能しますが、iOS 5.0で実行されている場合は、以下のように警告があります。 「アドレスandantationはinitwithcoordinateに応答できません」 この部分の下の変更方法: "ADANDANNOT...

1  継承されたJavaアノテーションを特殊化できますか  ( Can you specialize inherited java annotations ) 
私はそのフィールドのいくつかをマッピングするためにJPAアノテーションを持つ抽象スーパークラスを持っています。クラス自体には@mappedSuperClass注釈があります。 注釈全体を再指定せずに、継承された注釈の1つの要素を専門化/追加または変更できますか...

30  注釈で怠惰な非怠惰としてBeanを指定する方法  ( How to specify a bean as non lazy with annotations ) 
お菓子を設定するために注釈を使用するときは、遅延としてBeanを指定する方法がわかりますか? ...

3  複数行にHightlightテキスト  ( Hightlight text on multiple line ) 
jQueryを使ってテキストを強調表示しようとします。 このフィドルソリューションに従っています: http://jsfiddle.net/thelinh/ups3v/< 行ブレークタグを含まないテキストを検索し、ハイライトするのは作業です( <b...

4  Javaの注釈はこれで私を助けますか?  ( Can java annotations help me with this ) 
メソッドがクラスメソッドの前に呼び出されるように指定する方法があるかどうか疑問に思います。私はこのようなものを知っています、Junitが前()を持っているので、私がやりたいことは似ています。 これは私がやりたいことの具体的な例です <事前> <コード> cla...

0  無効な文字のためのstruts2注釈 - バリデータ  ( Struts2 annotation validators for invalid chars ) 
Struts2の使用中は、 set() メソッドの内部で、複数の注釈を使用して、のように、モデルクラス内の検証を行います。 <事前> <コード> @RequiredStringValidator(message = "Name is required") @...

3  コンパイルラウンドを越えた環境メンバーの一貫性  ( Consistency of processing environment members across compilation rounds ) 
JDK 6と7に載っているJavaアノテーション処理API(5からAPTツールAPIではなく)アノテーションプロセッサのライフサイクルを定義します。 1つはNO argsコンストラクターを介してインスタンス化され、 init メソッドは Processing...

1  私はGoogleバーチャートに取り組んでいます、私は個々のバーに色を追加して立ち往生しています  ( I am working on google bar charts i am stuck with adding colours to individual ) 
<事前> <コード> <!DOCTYPE html> <html lang="en-US"> <body> <h1>My Web Page</h1> <div id="piechart"></div> <script type="text/javascr...

18  インターフェース上の注釈?  ( Annotations on interfaces ) 
Javaでインターフェイスに注釈を付けることができるようにユースケースを見つけることができません。 多分誰かに例を与えることができる? ...




© 2022 cndgn.com All Rights Reserved. Q&Aハウス 全著作権所有