Vous devez vérifier si la mise en œuvre du serveur utilisé des supports de cuisson des tâches comme celui-ci. S'il ne le supporte pas ou si vous souhaitez être indépendant du serveur, implémentez un ServletContextListener
pour démarrer le démarrage de webapp et utilisez ScheduledExecutorService
pour exécuter une tâche à un moment et à des intervalles donnés.
Voici un exemple de coup d'envoi de base:
public class Config implements ServletContextListener {
private ScheduledExecutorService scheduler;
public void contextInitialized(ServletContextEvent event) {
scheduler = Executors.newSingleThreadScheduledExecutor();
scheduler.scheduleAtFixedRate(new Task(), millisToNext1000, 1, TimeUnit.DAYS);
}
public void contextDestroyed(ServletContextEvent event) {
scheduler.shutdown();
}
}
Où Task
implémente Callable
et millisToNext1000
est le montant de Millis à 10h00 suivante. Vous pouvez utiliser Calendar
ou JodaTime pour le calculer. En tant qu'alternative non standard Java, vous pouvez également envisager d'utiliser Quartz.
grâce @ring, @Balus, @Peter, Toutes vos réponses sont utiles, et je cours un exemple avec succès, mais je dois choisir une réponse :(, j'ai choisi réponse @ring parce qu'il a ajouté la dernière ligne, classe de l'auditeur.Merci les gars. – Abdullah