Sidekiq中perfrom_async和延迟有什么区别?

Ale*_*pov 5 asynchronous actionmailer background-process sidekiq

阅读Sidekiq Wiki时,我看到以下示例:

入门:

发送要异步处理的消息:

HardWorker.perform_async('bob', 5)
Run Code Online (Sandbox Code Playgroud)

您还可以通过在类方法上调用delay方法来发送消息:

User.delay.do_some_stuff(current_user.id, 20)
Run Code Online (Sandbox Code Playgroud)

此外,来自延迟扩展:

使用延迟以异步方式发送电子邮件.使用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?在哪种情况下我更喜欢一个而不是另一个?

Mik*_*ham 5

perform_async 是 Sidekiq 的原生 API。delay 是一个与 DelayedJob 兼容的 API。尽可能使用 perform_async。