Terrakotta adamlarla haksızlık ettiğini biliyorum, ancak kümelenmiş bir ortamda planlanan işleri kullanmak için herkes Hazelcast'i kullanmaya çalıştı mı?Hazelcast planlanan işler (Quartz desteği?)
- tek sunucusağlanması için küresel Hazelcast kilidi Kuvars yapılandırma başlangıç vardır:
Ben görüntü can en basit uygulama aşağıdaki mimarisidir.
- Gerçek görevleri DistributedTask olarak çalıştırmak. (Bu daha sonra yapılabilir, şu an için planlanan görevler, tetiklenen DistributedTask'ın sorumluluğunu üstlenmeye ihtiyaç duyacaktır)
- Kilit tutan sunucu en kısa sürede, başka bir sunucu kilidi alır.
Bunun, Hazelcast'e sahip olan insanlar için büyük bir avantaj olacağına inanıyorum; çünkü bu, her zaman pişmiş toprak şeyleri açarak tüm devasa çevre sorunlarına ihtiyaç duymayacaklar.
Şu an için Quartz tetikleyicileri yürütmekle görevli olan tek bir düğümün yapılmasının en basit çözümünü kodladım. Sadece Cron benzeri tetikleyiciler kullandığım için ağır tetikleme görevleri için DistributedTasks oluşturmayla ilgilenirseniz kabul edilebilir bir çözüm olabilir.
@Override
public void start() throws SchedulingException {
new Thread(new Runnable() {
@Override
public void run() {
final Lock lock = getLock();
lock.lock();
log.warn("This node is the master Quartz");
SchedulerFactoryBean.super.start();
}
}).start();
log.info("Starting..");
}
@Override
public void destroy() throws SchedulerException {
super.destroy();
getLock().unlock();
}
, bu yapılabilir eğer bana büyük bir şey eksik olmadığını bilmek ve bildirin:
İşte olmasını sağlıyor benim org.springframework.scheduling.quartz.SchedulerFactoryBean uzantısıdır.
İki dosyayı github'a ekledim.
Ve burada Bahar SchedulerFactoryBean uzantısı: İşte RAMJobStore uzantısı
FYI, yayınlanmış dağıtılmış zamanlamaları infaz etmek için bir özellik isteği var: https://github.com/hazelcast/hazelcast/issues/115 – ccleve