Kenmegne
7 days ago b3d0580439b9a00c7eb918085de1694151066004
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
package com.megatim.fdxconvert.service;
 
import com.megatim.fdxconvert.model.Tache;
import com.megatim.fdxconvert.service.util.SchedulerUtil;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;
 
/**
 *
 * @author MGT_DEV3
 */
public class TacheJobService {
 
    private TacheJobService() {
    }
 
    private static Scheduler scheduler;
 
    private static TacheJobService tacheJobService;
 
    public static TacheJobService getInstance() {
 
        if (tacheJobService == null) {
 
            try {
 
                scheduler = StdSchedulerFactory.getDefaultScheduler();
                tacheJobService = new TacheJobService();
 
            } catch (SchedulerException ex) {
            }
        }
 
        return tacheJobService;
    }
 
    public void startJobs() {
 
        try {
 
            scheduler.start();
 
            List<Tache> taches = TacheService.getInstance().getAll();
 
            taches.forEach(t -> {
 
                if (t.isActive()) {
 
                    //Creation concrète du Job (un Job concrèt se matérialise via la classe JobDetail)
                    JobDetail job = JobBuilder
                            .newJob(TacheJob.class)
                            .withIdentity(t.getLibelle())
                            .usingJobData("tacheId", t.getLibelle()).build();
 
                    //Ajout du Job crée dans l'ordonnanceur
                    try {
                        scheduler.scheduleJob(job, SchedulerUtil.buildTriggerForTache(t));
                    } catch (SchedulerException ex) {
                        Logger.getLogger(TacheJobService.class.getName()).log(Level.SEVERE, null, ex);
                    }
 
                }
 
            });
 
        } catch (Exception ex) {
            Logger.getLogger(TacheJobService.class.getName()).log(Level.SEVERE, null, ex);
        }
 
    }
 
    public void restartJob() {
 
        try {
 
            scheduler.clear();
            this.startJobs();
 
        } catch (SchedulerException ex) {
            Logger.getLogger(TacheJobService.class.getName()).log(Level.SEVERE, null, ex);
        }
 
    }
 
}