/* * Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license * Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template */ package com.megatim.fdxconsultation.service.impl.sockets; /** * * @author Lenovo P53 */ import com.megatim.fdxconsultation.core.ifaces.administration.UserManager; import com.megatim.fdxconsultation.core.ifaces.message.systeme.MessageSystemeManager; import com.megatim.fdxconsultation.model.administration.User; import com.megatim.fdxconsultation.model.dto.MessageSystemeDto; import com.megatim.fdxconsultation.model.message.systeme.ApplicationData; import com.megatim.fdxconsultation.model.message.systeme.UserSesionApplication; import com.megatim.fdxconsultation.tools.context.AppCommonContext; import java.util.Iterator; import javax.annotation.PostConstruct; import javax.ejb.LocalBean; import javax.ejb.Schedule; import javax.ejb.Singleton; import javax.ejb.Startup; import javax.inject.Inject; import javax.websocket.Session; @Singleton @Startup @LocalBean public class MessagesSystemeCronBean { @Inject private MessageSystemeManager messageSystemeManager; @Inject private UserManager userManager; @PostConstruct public void init() { } @Schedule(second = "*/3", minute = "*", hour = "*", persistent = false) public void refreshDatas() { //Variables ApplicationData message = new ApplicationData(); MessageSystemeDto messageSystemeDto = null; Iterator iterateur = null; String idSession = null; Session session = null; User utilisateur = null; try { //On crée une instance de l'iterateur iterateur = UserSesionApplication.getInstance().getUsers().keySet().iterator(); //On parcourt la liste des sessions while(iterateur.hasNext()){ //On recupère l'id de la session idSession = iterateur.next(); //On filtre par type if(UserSesionApplication.getInstance().getUsers() != null && UserSesionApplication.getInstance().getUsers().get(idSession) != null && (UserSesionApplication.getInstance().getUsers().get(idSession).getType() != null && UserSesionApplication.getInstance().getUsers().get(idSession).getType().equalsIgnoreCase(AppCommonContext.CODE_WEB_SOCKET_PATH_SYSTEME_MESSAGE))){ //On recupère la session session = UserSesionApplication.getInstance().getUsers().get(idSession).getSession(); //On recupère l'utilisateur associé à cette session utilisateur = UserSesionApplication.getInstance().getUsers().get(idSession).getUtilisateur(); //On recupère le message système messageSystemeDto = messageSystemeManager.recupererUnMessageSystemeDto(utilisateur); //Si non null if(messageSystemeDto != null){ //On hydrate le message message.setMessageSystemeDto(messageSystemeDto); //On envoie le message UserSesionApplication.getInstance().send(session, message); } } } } catch (Exception ex) { //On affiche les erreurs ex.printStackTrace(); } } }