我在我的web应用程序中编写调度器用于通知目的,我的调度器的任务很简单,它将访问第三方中央数据库并查找数据的可用性,如果数据可用,则返回true,否则返回false。
但是我被困在这里了,我想根据我的调度器返回的结果(true/false)来显示通知,但我不能思考,我如何实现相同的结果?我想在会话中绑定变量,但因为是时间,所以会话在这里是不可能的。
假设调度程序返回true,现在我希望JSP页面(仪表板页面)中包含这个值,这样我就可以在用户的仪表板中显示"Data is available“的消息。我需要这个值来检查条件
if(true)
"data is available"
else
no notification
请看我的代码,并建议我。
package com.awzpact.uam.scheduler;
import com.awzpact.prayas.dao.HRMSPickSalaryDataDAO;
import com.awzpact.uam.domain.SalaryDetailReport;
import java.util.List;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class PayrollDataNotificationScheduler {
private static boolean AVAIL_STATUS = false;
private static final Logger LOGGER = Logger.getLogger(PayrollDataNotificationScheduler.class);
public boolean checkDataAvailability() {
try {
List<SalaryDetailReport> list = salaryDataDAO.findAll();
if (list.size() > 0) {
AVAIL_STATUS = true;
return AVAIL_STATUS;
}
return false;
} catch (Exception e) {
e.printStackTrace();
LOGGER.info("Data is not available for migrate");
return false;
}
}
@Autowired
HRMSPickSalaryDataDAO salaryDataDAO;
}
发布于 2018-08-28 20:59:23
如果检索到某些数据,则定期运行计划任务-将其保存到数据库中。
// in your scheduled @Component
@Autowired
private SomeDataDAO someDataDAO;
@Scheduled(cron = "...")
public void fetchThirdPartyData() {
SomeData thirdPartyData = getThirdPartyData();
someDataDAO.save(thirdPartyData);
}
private SomeData getThirdPartyData() {
// calling their API...
}
然后创建一个控制器,它将从db获取数据(如果存在,请注意Optional
接口-您可以在DAO
方法中使用它)
// a rest controller
@RestController
@RequestMapping("/someData")
public class SomeController {
@Autowired
private SomeDataDAO someDataDAO;
@GetMapping
public SomeData getSomeData() {
return someDataDao.getSomeData().orElse(null);
}
}
现在,您可以在前面执行一些AJAX调用,这取决于您在那里使用的内容,然后您可以进行检查并打印消息。
发布于 2018-08-28 16:40:12
计划是指您想要在计划的基础上进行一些操作。等待响应看起来更像是客户端和服务器之间的请求/响应通信。为了检查数据是否可用-最好是通过REST控制器使用简单的方法调用,而不是使用调度器。
https://stackoverflow.com/questions/52053329
复制相似问题