说到轮询,大多数都使用websocket轮询,或亦是redis,rabbitMQ等,业务需求,今日想出一种简易的轮询方法, 记录一下,如有错误,大佬门轻喷。
需求假设:
页面显示今日天气状况,天气是实时改变的,所以每个一小时或者半小时更新。所以需要后台定时执行一次请求获取天气信息,来更新天气情况等等
直接上代码
//省略controller service代码
@Service
public class WeatherServiceImpl implements WeatherService{
//先获得天气情况,util封装了天气情况具体请求接口
public static Map data = Util.getWeatherData;
//每半个小时执行一次,具体参数写法可自行百度 @scheduled时间参数配置
@Scheduled(cron = "0 0/30 * * * *")
public void weatherScheduled(){
data = Util.getWeatherData;
}
@Override
public Map getWeather(){
return data;
}
}
这样就可简易的获取实时天气数据了。
这便是一个简易的轮询,数据量不大,轮询时间不长可以使用
数据量大,需要实时精准的还是使用消息中间件吧!~
如有错误,烦请告知并提出修改,谢谢~~