有几个需求
平常都是直接在定时任务上直接写好表达式的,现在这种动态的不太理解要怎么实现,做过此类型的麻烦指点一下思路,感谢~ (开发语言是 Java)
1
wolfie 2022-10-18 14:33:58 +08:00
没关系,定时任务作用是触发,你这是具体的筛选条件。
|
2
HHHHHQ 2022-10-18 14:38:57 +08:00
按我理解,第 1 个需求,是一个用户,N 天没有登录后,在当天的 M 点发送消息通知。用户量不大的情况下,感觉可以直接使用 redis 计数器记录用户的登录次数,每天 0 点先+1 ,登录后删除 key 。定时任务设置在每天 M 点,把数据取出来判断就行。
第 2 个需求其实同理,建一个每天 N 点的定时任务,积分做 redis 缓存。到时间取出来判断。 其实都只是定时任务,只不过你在定时任务触发的时候,去把符合要求的数据搞出来。 另外如果不是一定要求定点推送的话,可以用触发机制。 |
3
wxw752 2022-10-18 14:43:20 +08:00
cron 表达式里写好每隔几天几点执行。
具体要发给谁,发什么,方法里正常写 CRUD 就行了。 |
5
wu00 2022-10-18 14:53:34 +08:00
你的业务规则跟你的 cron 表达式有什么关系呢!
cron 表达式负责定时触发你的任务;任务执行你的业务规则。 |
6
nekolr 2022-10-18 14:56:27 +08:00
@lyusantu 你的意思是之前都是注解上写的固定表达式是吧?其实这个表达式是支持 SpEL 的,或者如果你用的是 quartz ,可以手动编写触发器的。
|
7
yzxhzxsw 2022-10-18 14:59:30 +08:00
可以看一下 xxl-job
|
8
lyusantu OP |
9
hidemyself 2022-10-18 15:15:05 +08:00
@lyusantu 所以解决方案是什么
|
10
lyusantu OP Quartz 有一个 DailyTimeIntervalScheduleBuilder ,之前没用过,刚看文档应该是可行的
|
11
frank42a 2022-10-18 16:50:38 +08:00
Spring 定时器可以吗?
|
13
Seulgi 2022-10-19 09:29:07 +08:00
帮你改一下描述.
1. 每隔 N 天的 X 点, 给最近登录时间大于等于 N 天的用户发送一条消息通知 2. 每天 X 点, 给积分达到 N 的用户推送一条通知. 结论, 均是每天 X 点的一个定时任务, 而非动态任务. |
14
Seulgi 2022-10-19 09:31:30 +08:00
xxl-job, xxl-job-admin 端口暴露, 后端配置好后, 删除上一次设置的定时, 设置最新的定时. x 点是用于设置定时, N 是用于定时任务代码的参数入参.
|
15
w292614191 2022-10-19 14:10:11 +08:00
xxl-job 最优解
|