我正在考虑在我的 Java 应用程序中使用 Redis,而不是 Quartz。
想法是重用 Redis key 过期机制,作为作业触发器。使用以下工作流程:
- 在 Redis 中创建一个 key ,并在预定时间过期
- 在 Java 中监听 key 过期时间。
- 当 key 过期时触发作业,由 key 名称定义。
有人试过这样的用例吗?
最佳答案
是的,我尝试解决几个与 Redis 缓存过期有关的问题。我使用了 NodeJs。
但是你必须维护这个逻辑,即使它为下一个过程过期,并根据你的业务逻辑设置过期时间
redisCache.config('set','notify-keyspace-events','KEA');
redisCache.subscribe(`__keyevent@${process.env.REDIS_DATABASE}__:expired`);
redisCache.on('message', (channel, key) => {
/**
Logic
*/
});
关于java - 我可以将 Redis 用作计划队列,对 key 过期事件使用react吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25589741/