| | |
| | | } |
| | | |
| | | /** |
| | | * 尝试标记已提醒(已过期场景,60 天内只提醒一次) |
| | | * |
| | | * 使用独立的 KEY,与 {@link #tryMarkReminded} 相互隔离,保证器具过期后仍能单独提醒一次 |
| | | * |
| | | * @param meteringId 计量器具编号 |
| | | * @param nextCheckDate 到期日 |
| | | * @return true 表示首次标记成功,需要发送提醒 |
| | | */ |
| | | public boolean tryMarkOverdueReminded(Long meteringId, LocalDate nextCheckDate) { |
| | | String key = RedisKeyConstants.METERING_EXPIRE_REMIND_OVERDUE + meteringId + ":" + nextCheckDate; |
| | | return Boolean.TRUE.equals(stringRedisTemplate.opsForValue().setIfAbsent(key, "1", REMIND_TIMEOUT)); |
| | | } |
| | | |
| | | /** |
| | | * 尝试获取当天的扫描门闩,避免多实例并发重复扫描 |
| | | * |
| | | * @param today 当天日期 |