私はSpringブートを使用して、フロントエンド用のすべてのバックエンドREST APIとreactJSを構築しています。 Webアプリケーションを使用すると、UI上に異なるタスクを実行することができます。基本的に、REST APIは実行されている特定のタスクのパラメータで起動されます。私たちがUIを通してそれを実行すると、すべてがうまくいきます。しかし、これらのタスクのいくつかにスケジュール機能を追加したいのであれば、それを進める方法について少し混乱しています。異なる間隔での異なるタスクのスプリングブートスケジューリング
私は春の起動中にいくつかの例を見てきましたが、オブジェクトの戻り値の型をvoidにする条件があります。一方、私のオブジェクトはStringを返すか、場合によってはlongを返します。これらのようなジョブをスケジューリングする最良の方法は、APIをさまざまな時間に実行する必要がある場所ですか。
ユースケース:
- 私のアプリケーション
- の異なるタスクは、各タスクは、各タスクが異なるスケジュール時間を持つことができるAPI
- をトリガーする異なるパラメータを持っているがあります。
上記のユースケースを使用して、スプリングブートアプリケーションを使用してスケジューラを構築するにはどうすればよいですか?私が見てきた
例は以下のとおりです。
package hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
@SpringBootApplication
@EnableScheduling
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class);
}
}
/***************************************************************/
package hello;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class ScheduledTasks {
private static final Logger log =
LoggerFactory.getLogger(ScheduledTasks.class);
private static final SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
log.info("The time is now {}", dateFormat.format(new Date()));
}
}