天气数据采集微服务的实现
天气数据采集服务包含数据采集组件、数据存储组件。其中,数据采集组件是通用的用于采集天气数据的组件,而数据存储组件是用于存储天气数据的组件。
在micro-weather-report应用的基础上,我们将对其进行逐步的拆分,形成一个新的微服务
msa-weather-collection-server应用。
所需环境
为了演示本例子,需要采用如下开发环境。
. JDK8。
. Gradle 4.0。
. Spring Boot Web Starter 2.0.0.M4。
.Apache HttpClient 4.5.3。
. Spring Boot Data Redis Starter 2.0.0.M4。
.Redis 3.2.100。
. Spring Boot Quartz Starter 2.0.0.M4。
. Quartz Scheduler 2.3.0。
新增天气数据采集服务接口及实现
在
com.waylau.spring.cloud.weather.service包下,我们定义了该应用的天气数据采集服务接口WeatherDataCollectionService。
public interface WeatherDataCollectionService {
/**
*根据城市工D同步天气数据
*
*@param cityId
*@return
*/
void syncDataByCityId(String cityId);
}
WeatherDataCollectionService只有一个同步天气数据的方法。WeatherDataCollectionServicelmpl是对WeatherDataCollectionService接口的实现。
package com.waylau.spring.cloud.weather.service;
import java.util.concurrent.TimeUnit;
import org.slf4j.Logger;
import org.slf4j-LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.http.ResponseEntity;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
/*★
*天气数据采集服务.
*
*@since 1.o.0 2017年10月29日
* @author <a href="https://waylau.com">Way Lau</a>
*/
@service
public class WeatherDataCollectionServicelmpl implements WeatherData
CollectionService {