diff --git a/pom.xml b/pom.xml
index 00952d0..3a93d51 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
me.qwq
doghouse
- 1.3.0
+ 1.3.1
jar
Doghouse
diff --git a/src/main/java/me/qwq/doghouse/BlogApplication.java b/src/main/java/me/qwq/doghouse/BlogApplication.java
index d95a4a4..aead262 100644
--- a/src/main/java/me/qwq/doghouse/BlogApplication.java
+++ b/src/main/java/me/qwq/doghouse/BlogApplication.java
@@ -8,6 +8,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cache.annotation.EnableCaching;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.scheduling.annotation.EnableAsync;
+import org.springframework.scheduling.annotation.EnableScheduling;
import lombok.extern.slf4j.Slf4j;
@@ -15,6 +16,7 @@ import lombok.extern.slf4j.Slf4j;
@MapperScan("me.qwq.doghouse.dao")
@SpringBootApplication
@EnableAsync(proxyTargetClass=true)
+@EnableScheduling
@EnableCaching(proxyTargetClass=true)
@EnableAspectJAutoProxy(exposeProxy = true)
@Slf4j
diff --git a/src/main/java/me/qwq/doghouse/component/DataSourcePostProcessor.java b/src/main/java/me/qwq/doghouse/component/DataSourcePostProcessor.java
index 2c31f17..508402f 100644
--- a/src/main/java/me/qwq/doghouse/component/DataSourcePostProcessor.java
+++ b/src/main/java/me/qwq/doghouse/component/DataSourcePostProcessor.java
@@ -36,7 +36,6 @@ public class DataSourcePostProcessor implements BeanPostProcessor {
*
* application 指定的 jdbc url 位置存在则使用对应位置,且后续一直以该路径为准(包括调试时修改的数据)。
* 若不存在则从 classpath 中取初始数据库复制到 jdbc url 指定的位置
- * @param dataSource
*/
@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
diff --git a/src/main/java/me/qwq/doghouse/component/Rk.java b/src/main/java/me/qwq/doghouse/component/Rk.java
index 379ab88..b023ca1 100644
--- a/src/main/java/me/qwq/doghouse/component/Rk.java
+++ b/src/main/java/me/qwq/doghouse/component/Rk.java
@@ -1,241 +1,114 @@
-package me.qwq.doghouse.component;
-
-import java.security.SecureRandom;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import jakarta.annotation.PostConstruct;
-import lombok.extern.slf4j.Slf4j;
-
-import org.redisson.Redisson;
-import org.redisson.api.RBucket;
-import org.redisson.api.RedissonClient;
-import org.redisson.client.codec.StringCodec;
-import org.redisson.client.protocol.RedisCommands;
-import org.redisson.command.CommandAsyncExecutor;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.sqids.Sqids;
-
-import me.qwq.doghouse.entity.Comment;
-import me.qwq.doghouse.entity.config.SiteConfig;
-import me.qwq.doghouse.util.Cryptos;
-/**
- * Redis Key Tool
- * @author Doghole
- *
- */
-@Component
-@Slf4j
-public class Rk {
-
- static SiteConfig siteConfig;
-
- static RedissonClient redisson;
-
-
- public static String SYSTEM_PREFIX;
-
- static final String NOTIFY_KEYSPACE_EVENTS = "notify-keyspace-events",
- x = "x", E = "E";
-
-
- @Autowired
- public void setService(SiteConfig siteConfig, RedissonClient redisson) {
- Rk.siteConfig = siteConfig;
- Rk.redisson = redisson;
- }
-
- @PostConstruct
- private void init() {
-
- SYSTEM_PREFIX = "doghouse:" + siteConfig.getAddress().hashCode() + ":";
-
- // 使用 Redisson 设置 redis 服务端的 x(expired) 和 E(evicted) 事件
- Redisson redissonImpl = (Redisson) redisson;
- CommandAsyncExecutor executor = redissonImpl.getCommandExecutor();
-
- @SuppressWarnings("unchecked")
- Map config = (Map) executor
- .readAsync("default", StringCodec.INSTANCE, RedisCommands.CONFIG_GET_MAP, NOTIFY_KEYSPACE_EVENTS)
- .toCompletableFuture().join();
-
- String keyEvents = config.getOrDefault(NOTIFY_KEYSPACE_EVENTS, "");
- boolean changed = false;
- if (!keyEvents.contains(x)) {
- keyEvents += x;
- changed = true;
- }
- if (!keyEvents.contains(E)) {
- keyEvents += E;
- changed = true;
- }
- if (changed) {
- log.debug("Redis setConfig {} value {}", NOTIFY_KEYSPACE_EVENTS, keyEvents);
- executor
- .writeAsync("default", StringCodec.INSTANCE, RedisCommands.CONFIG_SET, NOTIFY_KEYSPACE_EVENTS, keyEvents)
- .toCompletableFuture()
- .join();
- }
- }
-
- public static class Mail {
-
- public static final String ID = "mail:";
-
- private static String getMailKey(String subfix) {
- return SYSTEM_PREFIX + ID + subfix;
- }
-
- /**
- * 获取所有过期事件的 key
- * @return
- */
- public static Iterable getAllExpirationTaskKeys() {
- return redisson.getKeys()
- .getKeysByPattern(getMailKey("task-"));
- }
-
- /**
- * 获取邮件推送任务的 Bucket(不包括管理员邮件)
- * @param commentId
- * @return
- */
- public static RBucket