我有一个 Rails 应用程序,我想在后台运行作业,但我需要在原始事件后 2 小时运行作业。
用例可能是这样的:
用户发布产品列表。后台作业排队以将列表联合到第 3 方 api,但即使在原始请求之后,响应也可能需要一段时间,第 3 方的解决方案是每 2 小时轮询一次,看看我们是否可以获得成功确认。
那么有没有办法将作业排队,以便工作守护进程知道忽略它或只在预定时间收听它?
我不想使用 cron,因为它会加载整个应用程序堆栈,并且可能会在重叠的长时间运行的作业上执行两次。
可以为此使用优先级队列吗?有什么解决方案来实现这一点?