perform_later和perform_async有什么区别?

slo*_*zki 1 ruby-on-rails sidekiq

根据ActiveJob的文档,我应该使用排队工作perform_later。Sidekiq文档实现了perform_async,但是文档的ActiveJob部分建议使用perform_later。我perform_async以前在Rails中使用过,所以这些在任何方面是否有所不同,或者仅仅是约定?

ari*_*uod 5

ActiveJob是最著名的后台作业gem的包装,以提供用于后台作业的基本API。

ActiveJob定义perform_later。Sidekiq定义perfom_async。您使用哪种方法取决于您实施员工的方式。如果您使用ActiveJob工作者,那么必须使用perform_later;如果您不使用ActiveJob,只需与简单的Sidekiq工作者一起使用,则应使用perform_async

  • 如果你真的需要一些特殊的 Sidekiq-only 功能,你甚至可以使用 ActiveJob 和其他普通的 Sidekiq 实现工作人员。 (2认同)