我使用Sidekiq在后台执行一些重处理。我在网上查找,但无法找到以下问题的答案。我使用:基本的Sidekiq关于幂等性和功能的问题
Class.delay.use_method(listing_id)
,然后在类里面,我有一个
self.use_method(listing_id)
listing = Listing.find_by_id listing_id
UserMailer.send_mail(listing)
Class.call_example_function()
两个问题:
如何让我的UserMailer sendmail的这个功能幂?换句话说,如果延迟方法运行两次,我如何确保它只发送一次邮件?会把它包装在这样的作品中吗?
mail_sent =假 如果!mail_sent UserMailer.send_mail(上市) mail_sent =真 结束
我猜不是因为功能再次尝试,然后mail_sent被设置为false第二次贯穿。那么,我该如何做到这一点,以便UserMailer只运行一次。
- 在延迟的异步方法中调用的函数是否也是异步的?换句话说,是Class.call_example_function()异步执行的(未响应/请求周期的一部分吗?)如果不是这样,我应该用Class.delay.call_example_function()
总体而言,刚开始熟悉Sidekiq如此任何想法将不胜感激。
感谢