提交 7c25d3ab 作者: han

定时任务开启前检查

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