Представете си просто приложение за запознанства, което ви осигурява потенциален партньор всеки ден. Когато потребителите се регистрират за първи път, се случва следното -
Изпращат им имейл - „Добре дошли в приложението за запознанства!“
Започва персонализирана задача за съвпадение, за да им намери съвпадение за деня и им изпраща имейл - „Имате съвпадение!“
Ако избера да запиша масово няколко хиляди души, опашката за работа ще бъде попълнена с няколко хиляди работни места от #1 и #2. Важно е те да получат имейла първо, преди да получат съвпадение, тъй като в противен случай това създава объркващо изживяване.
Аз имам -
# config/sidekiq.rb
:queues:
- high_priority
- default
- low_priority
Според тази страница, тези опашки трябва да се обработват в посочения ред.
Как работи това приоритизиране? Източва ли се цялата
high priority
опашка, преди да изберете елемент отdefault
илиlow_priority
опашката? Или просто се проверява по-често, като все още позволява някои задачи с по-нисък приоритет да се обработват едновременно?Като продължение на #1, има ли начин да се гарантира, че за конкретен потребител ще получи имейла за добре дошли, преди да получи своя имейл за съвпадение? Първият ще бъде в опашката
high_priority
, а вторият в приоритетаdefault
, но няма гаранция, че и двете опашки са в определен ред за потребителите.
Благодаря!