我的需求场景是这样的,在后台用户可以添加/编辑某个 Post 记录,在 after_commit 后,需要执行一个比较耗时的基于当前表的所有记录的异步缓存任务 PopulateGlobalPostsCacheJob。如果用户在一条条操作记录,这样会依次创建多任务在执行,而实际上只有最后一个任务是有效的。
我想到的办法就是在模型的 after_commit 中,插入一个在 2 分钟后执行的异步任务。如果这时发现有等待中的任务,就取消之前的这个任务。
要是 SolidQueue 能支持这个用法就好了。