想象一个简单的约会应用程序,每天为您提供潜在的匹配。当用户首次注册时,会发生以下情况 -
他们会收到一封电子邮件 - "欢迎来到约会应用程序!"
自定义匹配作业开始为他们找到当天的匹配并向他们发送电子邮件 - "您有匹配!"
如果我选择批量注册数千人,则作业队列将包含数千个#1和#2的工作。在获得比赛之前,他们首先收到电子邮件 非常重要,否则会造成令人困惑的体验。
我有 -
# config/sidekiq.rb
:queues:
- high_priority
- default
- low_priority
根据this page,这些队列应按列出的顺序处理。
此优先顺序如何运作?在选择high priority
或default
队列的项目之前,整个 low_priority
队列是否已耗尽?或者只是更频繁地检查,还是允许同时处理一些较低优先级的作业?
作为#1的后续行动,有没有办法确保特定用户的 ,他们会在收到匹配电子邮件之前收到欢迎电子邮件?前者将位于high_priority
队列中,后者位于default
优先级中,但不保证队列对用户具有任何特定顺序。
谢谢!
答案 0 :(得分:1)
每次Sidekiq在Redis中寻找工作时,它会首先检查high_priority,然后是默认值,然后是low_priority。只要在high_priority中有作业,默认情况下的作业就会就位。