用 sidekiq 做定时任务,在的任务需要在还未执行前取消掉。
google 到两篇文章
How do I cancel a Sidekiq job? - sidekiq 似乎并不推荐在生产环境中这么做,那么怎么做才是优雅的?
How to delete Sidekiq jobs in a Rails app using ActiveJobs - 这个方法是找出 sidekiq 的 job_id,然后再调用 sidekiq 的方法去取消
Rails 关于 Cancel jobs 的讨论
大家都是怎么处理这样的问题的?
生产者先存一条异步任务基本信息记录在数据库中 消费者再消费之前检查一下数据库中的记录
这样做算是对业务上来说比较清晰的把,只是消费者要多读一次数据库。
#1 楼 @MrPasserby 谢谢,明白了。