Update async tasks

Remove high usage memory cron jobs
This commit is contained in:
salmanoe 2022-10-09 18:25:20 +07:00
parent 215416cecb
commit 0ea5964315
7 changed files with 311 additions and 275 deletions

View File

@ -21,7 +21,7 @@ import com.jasamedika.medifirst2000.vo.IpsrsJadwalPemeliharaanVO;
@Component
public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemeliharaanVO>{
/*
private Boolean flag =false;
private Integer pending = 0;
private String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
@ -111,5 +111,5 @@ public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemelihar
ex.printStackTrace();
}
}
*/
}

View File

@ -13,24 +13,31 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.google.gson.Gson;
import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.dao.PegawaiDao;
import com.jasamedika.medifirst2000.dao.RuanganDao;
import com.jasamedika.medifirst2000.entities.ModulAplikasi;
import com.jasamedika.medifirst2000.entities.ObjekModulAplikasi;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.Ruangan;
import com.jasamedika.medifirst2000.notification.MessagePublisher;
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
import com.jasamedika.medifirst2000.service.NotifMessagingService;
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
import com.jasamedika.medifirst2000.service.PegawaiService;
import com.jasamedika.medifirst2000.service.RuanganService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
import com.jasamedika.medifirst2000.vo.PegawaiVO;
import com.jasamedika.medifirst2000.vo.RuanganVO;
@Component
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO> {
/*
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
@Autowired
@ -42,6 +49,12 @@ public class NotificationSchedulerMaintenanceTask extends LocaleController<Notif
@Autowired
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
@Autowired
PegawaiService pegawaiService;
@Autowired
RuanganService<RuanganVO> ruanganService;
@Autowired
MessagePublisher<String, Object> messagePublisher;
@ -108,9 +121,12 @@ public class NotificationSchedulerMaintenanceTask extends LocaleController<Notif
ruanganTujuansId = notifMapAllRuanganTujuan.get(notifMessagingId);
try {
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
notifMessagingId, ruanganTujuansId);
} catch (Exception e) {
LOG.info(DateUtil.now()+" task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
LOG.info(
DateUtil.now()
+ " task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
}
}
@ -120,66 +136,67 @@ public class NotificationSchedulerMaintenanceTask extends LocaleController<Notif
// e.printStackTrace();
}
}
private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId,
Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception {
List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService
.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
return;
}
Integer ruanganIdtemp = 0;
boolean connect = false;
PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
//private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId, Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception{
//
//List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
//
//if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
// return;
//}
//
//Integer ruanganIdtemp = 0;
//boolean connect = false;
//
//PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
//
//for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
// Ruangan ruangan = vo.getRuangan();
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
// String customURLObjekModul = vo.getCustomURLObjekModul();
// String titleNotifikasi = vo.getTitleNotifikasi();
// String pesanNotifikasi = vo.getPesanNotifikasi();
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
//
// if (ruangan.getId() == ruanganId){
// continue;
// }
//
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
//
// if (ruanganIdtemp != ruangan.getId()){
// if (connect){
// rabbitHole.close();
// }
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
// connect = true;
// ruanganIdtemp = ruangan.getId();
// }
//
// Map<String, Object> map = new HashMap<>();
// map.put("title", titleNotifikasi);
// map.put("dariRuangan", dariRuangan);
// map.put("ruanganId", ruangan.getId());
// map.put("ruangan", ruangan);
// map.put("modulAplikasi", modulAplikasi);
// map.put("objekModulAplikasi", objekModulAplikasi);
// map.put("titleNotifikasi", titleNotifikasi);
// map.put("pesanNotifikasi", pesanNotifikasi);
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
// map.put("fromPegawai", pegawai);
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
//
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
//
// //messagePublisher.BroadcastMessage(map);
//}
//if (connect){
// rabbitHole.close();
//}
//
//}
for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs) {
Ruangan ruangan = vo.getRuangan();
ModulAplikasi modulAplikasi = vo.getModulAplikasi();
ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
String customURLObjekModul = vo.getCustomURLObjekModul();
String titleNotifikasi = vo.getTitleNotifikasi();
String pesanNotifikasi = vo.getPesanNotifikasi();
String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
if (ruangan.getId() == ruanganId) {
continue;
}
RuanganVO dariRuangan = ruanganService.findById(ruanganId);
if (ruanganIdtemp != ruangan.getId()) {
if (connect) {
rabbitHole.close();
}
rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
connect = true;
ruanganIdtemp = ruangan.getId();
}
Map<String, Object> map = new HashMap<>();
map.put("title", titleNotifikasi);
map.put("dariRuangan", dariRuangan);
map.put("ruanganId", ruangan.getId());
map.put("ruangan", ruangan);
map.put("modulAplikasi", modulAplikasi);
map.put("objekModulAplikasi", objekModulAplikasi);
map.put("titleNotifikasi", titleNotifikasi);
map.put("pesanNotifikasi", pesanNotifikasi);
map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
map.put("fromPegawai", pegawai);
map.put("urlForm", CommonUtil.isNullOrEmpty(customURLObjekModul) ? objekModulAplikasi.getAlamatUrlForm()
: customURLObjekModul);
rabbitHole.sendRabbitMQNotification(gson.toJson(map));
messagePublisher.BroadcastMessage(map);
}
if (connect) {
rabbitHole.close();
}
}
*/
}

View File

@ -13,24 +13,31 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import com.google.gson.Gson;
import com.jasamedika.medifirst2000.controller.base.LocaleController;
import com.jasamedika.medifirst2000.dao.PegawaiDao;
import com.jasamedika.medifirst2000.dao.RuanganDao;
import com.jasamedika.medifirst2000.entities.ModulAplikasi;
import com.jasamedika.medifirst2000.entities.ObjekModulAplikasi;
import com.jasamedika.medifirst2000.entities.Pegawai;
import com.jasamedika.medifirst2000.entities.Ruangan;
import com.jasamedika.medifirst2000.notification.MessagePublisher;
import com.jasamedika.medifirst2000.service.NotifMessagingSchedulerService;
import com.jasamedika.medifirst2000.service.NotifMessagingService;
import com.jasamedika.medifirst2000.service.NotifikasiMessageObjekModulService;
import com.jasamedika.medifirst2000.service.PegawaiService;
import com.jasamedika.medifirst2000.service.RuanganService;
import com.jasamedika.medifirst2000.util.CommonUtil;
import com.jasamedika.medifirst2000.util.DateUtil;
import com.jasamedika.medifirst2000.vo.NotifMessagingSchedulerVO;
import com.jasamedika.medifirst2000.vo.NotifMessagingVO;
import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
import com.jasamedika.medifirst2000.vo.PegawaiVO;
import com.jasamedika.medifirst2000.vo.RuanganVO;
@Component
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO> {
/*
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
@Autowired
@ -42,6 +49,12 @@ public class NotificationSchedulerMaintenanceTask extends LocaleController<Notif
@Autowired
NotifikasiMessageObjekModulService<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulService;
@Autowired
PegawaiService pegawaiService;
@Autowired
RuanganService<RuanganVO> ruanganService;
@Autowired
MessagePublisher<String, Object> messagePublisher;
@ -108,9 +121,12 @@ public class NotificationSchedulerMaintenanceTask extends LocaleController<Notif
ruanganTujuansId = notifMapAllRuanganTujuan.get(notifMessagingId);
try {
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService, notifMessagingId, ruanganTujuansId);
rabbitHole.sendNotif(rabbitHole, ruanganAsal, pegawai, notifikasiMessageObjekModulService,
notifMessagingId, ruanganTujuansId);
} catch (Exception e) {
LOG.info(DateUtil.now()+" task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
LOG.info(
DateUtil.now()
+ " task scheduler dari Ruangan {} dengan ruanganId {} pada notifMessageId {} ada masalah {}",
ruanganAsal.getNamaRuangan(), ruanganAsalId, notifMessagingId, e.getMessage());
}
}
@ -120,66 +136,67 @@ public class NotificationSchedulerMaintenanceTask extends LocaleController<Notif
// e.printStackTrace();
}
}
private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId,
Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception {
List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService
.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
return;
}
Integer ruanganIdtemp = 0;
boolean connect = false;
PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
//private void sendNotif(Gson gson, String urlSocket, MessagePublisher.RabbitHole rabbitHole, Integer pegawaiId, Integer ruanganId, Integer notifMessagingId, List<Integer> ruanganTujuansId) throws Exception{
//
//List<NotifikasiMessageObjekModulVO> notifikasiMessageObjekModulVOs = notifikasiMessageObjekModulService.findByNotifMessagingIdAndRuanganId(notifMessagingId, ruanganTujuansId);
//
//if (CommonUtil.isNullOrEmpty(notifikasiMessageObjekModulVOs)) {
// return;
//}
//
//Integer ruanganIdtemp = 0;
//boolean connect = false;
//
//PegawaiVO pegawai = pegawaiService.findById(pegawaiId);
//
//for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs){
// Ruangan ruangan = vo.getRuangan();
// ModulAplikasi modulAplikasi = vo.getModulAplikasi();
// ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
// String customURLObjekModul = vo.getCustomURLObjekModul();
// String titleNotifikasi = vo.getTitleNotifikasi();
// String pesanNotifikasi = vo.getPesanNotifikasi();
// String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
//
// if (ruangan.getId() == ruanganId){
// continue;
// }
//
// RuanganVO dariRuangan = ruanganService.findById(ruanganId);
//
// if (ruanganIdtemp != ruangan.getId()){
// if (connect){
// rabbitHole.close();
// }
// rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
// connect = true;
// ruanganIdtemp = ruangan.getId();
// }
//
// Map<String, Object> map = new HashMap<>();
// map.put("title", titleNotifikasi);
// map.put("dariRuangan", dariRuangan);
// map.put("ruanganId", ruangan.getId());
// map.put("ruangan", ruangan);
// map.put("modulAplikasi", modulAplikasi);
// map.put("objekModulAplikasi", objekModulAplikasi);
// map.put("titleNotifikasi", titleNotifikasi);
// map.put("pesanNotifikasi", pesanNotifikasi);
// map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
// map.put("fromPegawai", pegawai);
// map.put("urlForm",CommonUtil.isNullOrEmpty(customURLObjekModul)? objekModulAplikasi.getAlamatUrlForm() : customURLObjekModul);
//
// rabbitHole.sendRabbitMQNotification(gson.toJson(map));
//
// //messagePublisher.BroadcastMessage(map);
//}
//if (connect){
// rabbitHole.close();
//}
//
//}
for (NotifikasiMessageObjekModulVO vo : notifikasiMessageObjekModulVOs) {
Ruangan ruangan = vo.getRuangan();
ModulAplikasi modulAplikasi = vo.getModulAplikasi();
ObjekModulAplikasi objekModulAplikasi = vo.getObjekModulAplikasi();
String customURLObjekModul = vo.getCustomURLObjekModul();
String titleNotifikasi = vo.getTitleNotifikasi();
String pesanNotifikasi = vo.getPesanNotifikasi();
String namaFungsiFrontEnd = vo.getNamaFungsiFrontEnd();
if (ruangan.getId() == ruanganId) {
continue;
}
RuanganVO dariRuangan = ruanganService.findById(ruanganId);
if (ruanganIdtemp != ruangan.getId()) {
if (connect) {
rabbitHole.close();
}
rabbitHole.connect(urlSocket, String.valueOf(ruangan.getId()));
connect = true;
ruanganIdtemp = ruangan.getId();
}
Map<String, Object> map = new HashMap<>();
map.put("title", titleNotifikasi);
map.put("dariRuangan", dariRuangan);
map.put("ruanganId", ruangan.getId());
map.put("ruangan", ruangan);
map.put("modulAplikasi", modulAplikasi);
map.put("objekModulAplikasi", objekModulAplikasi);
map.put("titleNotifikasi", titleNotifikasi);
map.put("pesanNotifikasi", pesanNotifikasi);
map.put("namaFungsiFrontEnd", namaFungsiFrontEnd);
map.put("fromPegawai", pegawai);
map.put("urlForm", CommonUtil.isNullOrEmpty(customURLObjekModul) ? objekModulAplikasi.getAlamatUrlForm()
: customURLObjekModul);
rabbitHole.sendRabbitMQNotification(gson.toJson(map));
messagePublisher.BroadcastMessage(map);
}
if (connect) {
rabbitHole.close();
}
}
*/
}

View File

@ -21,7 +21,7 @@ import com.jasamedika.medifirst2000.vo.IpsrsJadwalPemeliharaanVO;
@Component
public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemeliharaanVO>{
/*
private Boolean flag =false;
private Integer pending = 0;
private String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
@ -111,5 +111,5 @@ public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemelihar
ex.printStackTrace();
}
}
*/
}

View File

@ -18,7 +18,7 @@ import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
@Component
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO>{
/*
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
@Autowired
@ -38,7 +38,7 @@ public class NotificationSchedulerMaintenanceTask extends LocaleController<Notif
@Autowired
RuanganDao ruanganDao;
*/
// @Scheduled(cron = "0 30 7 * * *")
// public void NotificationNormalMaintenanceEvery730AM(){
// try{

View File

@ -21,7 +21,7 @@ import com.jasamedika.medifirst2000.vo.IpsrsJadwalPemeliharaanVO;
@Component
public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemeliharaanVO>{
/*
private Boolean flag =false;
private Integer pending = 0;
private String time = new SimpleDateFormat("HH:mm").format(Calendar.getInstance().getTime());
@ -111,5 +111,5 @@ public class IpsrsAlertMaintenance extends LocaleController<IpsrsJadwalPemelihar
// ex.printStackTrace();
// }
// }
*/
}

View File

@ -30,7 +30,7 @@ import com.jasamedika.medifirst2000.vo.NotifikasiMessageObjekModulVO;
@Component
public class NotificationSchedulerMaintenanceTask extends LocaleController<NotifMessagingSchedulerVO>{
/*
private final Logger LOG = LoggerFactory.getLogger(NotificationSchedulerMaintenanceTask.class);
@Autowired
@ -53,6 +53,7 @@ public class NotificationSchedulerMaintenanceTask extends LocaleController<Notif
@Scheduled(cron = "0 30 7 * * *")
public void NotificationNormalMaintenanceEvery730AM(){
// try{
// MessagePublisher.RabbitHole rabbitHole = messagePublisher.getRabbitHole();
//
@ -120,6 +121,7 @@ public class NotificationSchedulerMaintenanceTask extends LocaleController<Notif
// //e.printStackTrace();
// }
}
*/
}