Kaz*_*min 4 ruby ruby-on-rails sidekiq
我在跑:
我是从早期版本升级的,我在initializers/sidekiq.rb 中有这行代码
Sidekiq::Extensions.enable_delay!
Run Code Online (Sandbox Code Playgroud)
我收到一条警告消息说
config/initializers/sidekiq.rb:3:警告:Sidekiq 的延迟扩展将在 Sidekiq 7.0 中删除
然而我找不到该做什么。如何替换 Delayed Extensions 提供的功能。我目前仅将其用于电子邮件。
从 Sidekiq 版本 5 开始,他们默认禁用延迟扩展,其推理记录在此处。由于它们的灵活性,它们很容易被误用。如果您使用延迟扩展只是为了将来运行作业,那么您可以使用两种替代品。
Sidekiq 处理此问题的方法称为“计划作业”,它看起来有点像“SomeSidekiqWorker.perform_in(3.hours, 'argument 1', 'argument 2')或者如果您有特定时间希望执行作业” perform_at。
此功能现在也内置到 ActiveJob 中(Rails 指南、API 文档),并且看起来像SomeJob.set(wait: 3.hours).perform_later('argument 1', 'argument 2').
标准 Rails 邮件程序的最简单选项类似于这些,它在底层使用 ActiveJob 机制(API 文档)。
WelcomeMailer.welcome(User.first).deliver_later(wait: 3.hours)
WelcomeMailer.welcome(User.first).deliver_later(wait_until: 3.hours.from_now)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3765 次 |
| 最近记录: |