Je commence par le démarrage de printemps.
public class App
{
public static void main (String [] args) throws Exception
{
System.out.println ("--------------------");
SpringApplication.run (App.class, args);
for (;;) // my main loop
{
// do something permanently
Thread.sleep (10000);
}
}
}
J'utilise une liaison de configuration (@Value et @configurationProperties aussi). p>
3 Réponses :
Ne faites rien comme ça dans votre classe d'application. p>
Définissez simplement un haricot de ressort et annoter une fonction contenant quelle que soit la logique que vous souhaitez effectuer régulièrement et que l'annotation est avec un @scheduled. p>
Regardez les éléments suivants pour plus d'informations: https://www.baeldung.com / Tâches programmées à ressort p>
Voir planificateur Doc de printemps. Brièvement:
Ajouter @enablesCHEDULING à Starter / Config: P>
@Component
public class ScheduledTasks {
@Scheduled(fixedRate = 10000)
public void reportCurrentTime() {
// do anything
}
}
Je ne pense pas que ce serait le meilleur design. Si vous voulez faire la tâche non http, je vous recommanderais de créer de nouveaux haricots et d'utiliser @scheduled et peut spécifier l'heure à laquelle vous souhaitez le faire.
@Component
public class YourTask{
@Scheduled(fixedRate = 5000)
public void reportCurrentTime() {
//your task
}
}
Vous pouvez le faire avec Springboot à l'aide de @scheduled (fixdelay = 10000). Pourquoi voulez-vous le faire à l'extérieur du printemps? Exemple de planificateur: printemps.io/guides/gs/scheduling-tasks
Ce n'est pas mon plan de le faire à l'extérieur. Je ne savais tout simplement pas comment le faire à l'intérieur.