新手问题 rails mail 怎么可以取消发送

selenium · June 19, 2019 · Last by selenium replied at June 20, 2019 · 999 hits

我控制器里面,设置 5 分钟后发送邮件,但是用户如果短时间请求几次,那就会发送几次邮件,我希望用户请求,五分钟后发送邮件,在这五分钟内,如果用户再次请求,那么前一次发送的邮件将会取消,在第二次请求之后五分钟再发送邮件,怎么实现比较好呢

发的时候存了 redis 里,加过期时间,每次发的时候都有判断有没有这个 key,有就不发,没有就发,并刷新 key。 或者利用 rate limit 也能做。

放到 sidekiq 里,延时 5 分钟,存 jid,5 分钟内,再通过 jid 把这个待处理任务删掉。加个发不发字段也行

谢谢啊

You need to Sign in before reply, if you don't have an account, please Sign up first.