阅读Sidekiq Wiki时,我看到以下示例:
发送要异步处理的消息:
HardWorker.perform_async('bob', 5)
您还可以通过在类方法上调用delay方法来发送消息:
User.delay.do_some_stuff(current_user.id, 20)
此外,来自Delayed extensions:
使用延迟异步发送电子邮件。使用delay_for(interval)或delay_until(time)在将来的某个时间发送电子邮件。
UserMailer.delay.welcome_email(@ user.id) UserMailer.delay_for(5.days).find_more_friends_email(@ user.id) UserMailer.delay_until(5.days.from_now).find_more_friends_email(@ user.id)
那么perfrom_async
和delay
之间究竟有什么区别?我更喜欢哪种情况呢?
答案 0 :(得分:4)
perform_async是Sidekiq的原生API。 delay是与DelayedJob的兼容性API。尽可能使用perform_async。