correction scheduler et random delay dans canal)

This commit is contained in:
trochas
2025-11-07 12:15:24 +01:00
parent 52d32ef5d6
commit 2c2d79bc52
4 changed files with 14 additions and 5 deletions

View File

@@ -20,6 +20,10 @@ public class Afficheur implements ObserverdeCapteur {
this.canalAsync = canal;
}
public void setId(int id){
this.id = id;
}
//AO1 - concrete servant
@Override
public void update(Capteur subject) {

View File

@@ -5,10 +5,10 @@ import interfaces.CapteurAsync;
import interfaces.ObserverDeCapteurAsync;
import interfaces.ObserverdeCapteur;
import java.util.Random;
import java.util.concurrent.Future;
public class Canal implements ObserverDeCapteurAsync, CapteurAsync {
private int delay=1000;
private Scheduler scheduler;
private ObserverdeCapteur afficher;
private Capteur capteur;
@@ -22,12 +22,12 @@ public class Canal implements ObserverDeCapteurAsync, CapteurAsync {
//AO1 - proxy
@Override
public Future<?> update(Capteur c) {
return scheduler.enquete(new UpdateReq(capteur,afficher),delay);
return scheduler.enquete(new UpdateReq(capteur,afficher),new Random().nextInt(1000)+500);
}
//AO2 - proxy
@Override
public Future<Integer> getValue() {
return scheduler.enquete(new GetValueReq(capteur),delay);
return scheduler.enquete(new GetValueReq(capteur),new Random().nextInt(1000)+500);
}
}

View File

@@ -10,6 +10,10 @@ public class Scheduler {
scheduler = Executors.newScheduledThreadPool(nThread);
}
public ScheduledExecutorService getScheculer(){
return this.scheduler;
}
public <T> Future<T> enquete(Callable<T> task, long delay) {
return scheduler.schedule(task, delay, TimeUnit.MICROSECONDS);
}