ben uygulama (1.4.2 sürümü) benim Bahar Boot zamanlanmış görevler çok var ve mümkün gibi bir işleyicisi kullanarak onlardan tüm özel durumları yakalamak istiyoruz @ExceptionHandler ek açıklama ile normal kontrolörler için.Evrensel istisna işleyicisi
@Component
public class UpdateJob {
@Transactional
@Scheduled(cron = "0 1 0 * * *")
public void runUpdateUsers() {
userService.updateUsers();
}
@ExceptionHandler
public void handle(Exception e) {
// some more logic here
logger.error(e.getMessage());
}
}
@ExceptionHandler @Scheduled yöntemi için çalışmaz (ve bunun için değildir çıkıyor): Bu yaklaşım için diş çekme @Scheduled açıklama ile tanımlanır görevler için çalışmaz. Bunun yerine, Bahar Boot o LoggingErrorHandler kendi oluyor kullanır:
2016-12-08 15:49:20.016 ERROR 23119 --- [pool-7-thread-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task.
ben bir şekilde değiştirmek veya zamanlanmış görevler için tedarik varsayılan durum işleyicisi miyim? Ya da anlayabildiğim gibi, daha fazla hata ileten PropagatingErrorHandler'a geçmek (ve mümkün mü)? Sadece Java yapılandırması (XML yok) kullanarak hedefe ulaşmak için başka bir yolu var mı? açıkça için Java yapılandırmasına dayalı bir çözüm sorar olarak
Bu this question kopyası olmaması değil, XML (yani herhangi bir XML yapılandırma olmadan Bahar Boot projeye dahil etmek iyi değildir).
da sıfırdan TaskScheduler nasıl yapılandırılacağı gösteren bazı cevaplar vardır. Örneğin, bu answer, havuz boyutunu, maksimum havuz boyutunu, sıra kapasitesini de tanımlamanızı gerektirir. Here, aynı zamanda çok kapsamlı konfigürasyona ihtiyaç duyan bir çözümdür. Documentation, diğer yönlerin nasıl yapılandırılacağını, ancak hata işleme yönteminin nasıl belirleneceğini gösterir. Ama Ben maksimum Bahar Önyükleme varsayılan değerleri (iş parçacığı havuzu, infaz yapılandırmaları vs.) tutabilir, böylece Java yapılandırma ile minimum gerekli çaba ne.
yorum belirtildiği gibi
İstisna işleyiciler Web işleyici yöntemleri içindir. –
Lütfen mantık sağlayın, herhangi bir yöntem veya sınıf için istisna eylemcisini kullanamazsanız herhangi bir sebep var mı? Terim "web işleyicisi" ASP.net için geçerlidir, belki de orada farklı? –
Webmvc altyapısının bir parçasıdır. @ Controller ile kullanılmalıdır. Bağladığınız javadoc'u okuyun. –