Bonjour,
J'ai un soucis et peut-être que vous pourrez m'aider !
Pour un projet, on m'a demandé de lire et récupérer les données de fichiers CSV. On m'a demandé que le programme récupère toutes les heures ces données. J'ai donc pour cela décidé d'utiliser Quartz et plus particulièrement Cron Schedule.
Je vous montre mon code pour que vous puissiez voir
GkaJob.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package com.auscult.gka; import org.quartz.Job; import org.quartz.JobDataMap; import org.quartz.JobExecutionContext; import org.quartz.JobExecutionException; import com.auscult.gka.OpenGka; public class GkaJob implements Job { public void execute(JobExecutionContext context2) throws JobExecutionException { JobDataMap data = context2.getJobDetail().getJobDataMap(); String dir = data.getString("dir"); System.out.println(dir); try (OpenGka gka = new OpenGka (dir)) { System.out.println("test0"); } catch (Exception e) { throw new JobExecutionException(e); } } }
OpenGka.java
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package com.auscult.gka; import java.io.FileReader; import java.io.IOException; import au.com.bytecode.opencsv.CSVReader; import java.lang.AutoCloseable; public class OpenGka implements AutoCloseable { public OpenGka(String dir) throws IOException { System.out.println("test"); File[] filesInDirectory = new File(dir).listFiles(); for(File f : filesInDirectory){ String filePath = f.getAbsolutePath(); String fileExtenstion = filePath.substring(filePath.lastIndexOf(".") + 1,filePath.length()); if("csv".equals(fileExtenstion)){ System.out.println("CSV file found -> " + filePath); } } System.out.println("test1.2"); try (CSVReader reader = new CSVReader(new FileReader(dir))) { System.out.println("test2"); String[] line; while ((line = reader.readNext()) != null) { for(String token : line) { System.out.println(token); } } } } @Override public void close() throws Exception { } }
QuartzGka.java
Le soucis est dans mon "OpenGka.java" je pense car comme vous pouvez le voir j'ai mis des System.out.println un peu partout et seulement "Test" s'affiche en console
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 package com.auscult.gka; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.quartz.CronScheduleBuilder; import org.quartz.JobBuilder; import org.quartz.JobDetail; import org.quartz.Scheduler; import org.quartz.SchedulerException; import org.quartz.Trigger; import org.quartz.TriggerBuilder; import org.quartz.impl.StdSchedulerFactory; public class QuartzGka implements ServletContextListener { Scheduler scheduler = null; @Override public void contextInitialized(ServletContextEvent servletContext) { System.out.println("Context Initialized2"); try { final JobDetail job2 = JobBuilder .newJob(GkaJob.class) .withIdentity("monJob2" , "groupe_2" ) .usingJobData("dir", "//192.168.7.192/TEST/") .build(); // Create a Trigger that fires every 30 minutes. final Trigger trigger2 = (Trigger) TriggerBuilder .newTrigger() .withIdentity("TriggerName2", "Group2") .withSchedule(CronScheduleBuilder.cronSchedule("0 0/1 * * * ?")) //test 1mn .build(); // Setup the Job and Trigger with Scheduler & schedule jobs scheduler = new StdSchedulerFactory().getScheduler(); scheduler.start(); scheduler.scheduleJob(job2, trigger2); } catch (SchedulerException e) { e.printStackTrace(); } } @Override public void contextDestroyed(ServletContextEvent servletContext) { System.out.println("Context Destroyed"); try { scheduler.shutdown(); } catch (SchedulerException e) { e.printStackTrace(); } } }
Du fait, mes données ne s'affiche pas en console
Si vous avez une idée, peut être un truc tout bête, je ne suis pas très à l'aise avec la librairie OpenCsv
Partager