package me.hao0.antares.store.dao.impl; import com.google.common.base.Function; import com.google.common.collect.Lists; import me.hao0.antares.common.model.AlarmEvent; import me.hao0.antares.common.util.CollectionUtil; import me.hao0.antares.store.dao.AlarmEventDao; import me.hao0.antares.store.support.RedisKeys; import org.springframework.stereotype.Repository; import java.util.Collections; import java.util.List; /** * The alarm event dao impl * Author: haolin * Email: haolin.h0@gmail.com */ @Repository public class AlarmEventDaoImpl extends RedisDao<AlarmEvent> implements AlarmEventDao { @Override public Boolean push(Long id) { return redis.opsForList().rightPush(RedisKeys.ALARM_EVENT_QUEUE, String.valueOf(id)) > 0; } @Override public List<Long> pull(Integer size) { List<String> ids = redis.opsForList().range(RedisKeys.ALARM_EVENT_QUEUE, 0, size - 1); if (CollectionUtil.isNullOrEmpty(ids)){ return Collections.emptyList(); } redis.opsForList().trim(RedisKeys.ALARM_EVENT_QUEUE, size, -1); return Lists.transform(ids, new Function<String, Long>() { @Override public Long apply(String idStr) { return Long.valueOf(idStr); } }); } }