提交 7c25d3ab 作者: han

定时任务开启前检查

上级 ee21d874
...@@ -130,7 +130,9 @@ public class MessageServiceImpl implements MessageService { ...@@ -130,7 +130,9 @@ public class MessageServiceImpl implements MessageService {
if(messageDao.insertUserMessage(userMessageDO) != 0){ if(messageDao.insertUserMessage(userMessageDO) != 0){
UserAccountDO userAccount = userServiceDao.getUserAccountById(userMessageDO.getReceiverUserId()); UserAccountDO userAccount = userServiceDao.getUserAccountById(userMessageDO.getReceiverUserId());
UserDO userDO = userAccount.buildUserDO(); UserDO userDO = userAccount.buildUserDO();
if(scheduledTaskUtil.check(senderUserId) == 1){
scheduledTaskUtil.create(userDO); scheduledTaskUtil.create(userDO);
}
if(messageDao.isUserMessageLog(userMessageDO.getReceiverUserId(), userMessageDO.getSenderUserId()) == null){ if(messageDao.isUserMessageLog(userMessageDO.getReceiverUserId(), userMessageDO.getSenderUserId()) == null){
UserMessageLogDO userMessageLogDO = new UserMessageLogDO(); UserMessageLogDO userMessageLogDO = new UserMessageLogDO();
userMessageLogDO.setSenderUserId(userMessageDO.getSenderUserId()); userMessageLogDO.setSenderUserId(userMessageDO.getSenderUserId());
......
...@@ -49,28 +49,51 @@ public class ScheduledTaskUtil { ...@@ -49,28 +49,51 @@ public class ScheduledTaskUtil {
scheduledTasks.put(userDO.getUserAccountId(), scheduledFuture); scheduledTasks.put(userDO.getUserAccountId(), scheduledFuture);
} }
// public void destroy(Integer userAccountId){
// redisTemplate.setValueSerializer(RedisSerializer.json());
// Set<String> keys = redisTemplate.keys("task" + userAccountId + "*");
// if(keys == null || keys.isEmpty()){
// return;
// }
// for (String key : keys) {
// redisTemplate.setValueSerializer(RedisSerializer.json());
// String s = redisTemplate.opsForValue().get(key);
// MyTask task = new Gson().fromJson(s, MyTask.class);
// ScheduledFuture<?> scheduledFuture = scheduledTasks.get(userAccountId);
// if (task != null && scheduledFuture != null) {
// scheduledFuture.cancel(false);
// redisTemplate.delete(key);
// scheduledTasks.remove(userAccountId);
// }
// }
// System.out.println("定时任务已取消");
//// String s = redisTemplate.opsForValue().get("task" + userAccountId);
//// if(s == null || s == ""){
//// return;
//// }
//
// }
public void destroy(Integer userAccountId){ public void destroy(Integer userAccountId){
redisTemplate.setValueSerializer(RedisSerializer.json()); redisTemplate.setValueSerializer(RedisSerializer.json());
Set<String> keys = redisTemplate.keys("task" + userAccountId + "*"); String s = redisTemplate.opsForValue().get("task" + userAccountId);
if(keys == null || keys.isEmpty()){ if(s == null || s == ""){
return; return;
} }
for (String key : keys) {
redisTemplate.setValueSerializer(RedisSerializer.json());
String s = redisTemplate.opsForValue().get(key);
MyTask task = new Gson().fromJson(s, MyTask.class); MyTask task = new Gson().fromJson(s, MyTask.class);
ScheduledFuture<?> scheduledFuture = scheduledTasks.get(userAccountId); ScheduledFuture<?> scheduledFuture = scheduledTasks.get(userAccountId);
if (task != null && scheduledFuture != null) { if (task != null && scheduledFuture != null) {
scheduledFuture.cancel(false); scheduledFuture.cancel(false);
redisTemplate.delete(key); redisTemplate.delete("task"+userAccountId);
scheduledTasks.remove(userAccountId); scheduledTasks.remove(userAccountId);
System.out.println("定时任务已取消");
} }
} }
System.out.println("定时任务已取消"); public int check(Integer userAccountId){
// String s = redisTemplate.opsForValue().get("task" + userAccountId); redisTemplate.setValueSerializer(RedisSerializer.json());
// if(s == null || s == ""){ String s = redisTemplate.opsForValue().get("task" + userAccountId);
// return; if(s == null || s == ""){
// } return 1;
}
return 0;
} }
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论