Мне нужно выполнить несколько заданий по запросу пользователя. Однако среди них важна только одна.вызов нескольких сотрудников sidekiq у рабочего
У меня есть MainWorker
, у которого perform
метод, который я называю другими другими работниками, такими как Worker1
, Worker2
.
Работник1 и рабочий2 могут быть отложены, мне нужно уделять приоритетное внимание MainWorker.
так вот как мой метод выполнения теперь выглядит
class MainWorker
def perform(user_id)
User.find(user_id).main_task
Worker1.perform_aync(user_id)
Worker2.perform_aync(user_id)
end
end
я мог бы больше к югу рабочие приходят позже. Я хочу знать, является ли это хорошей практикой или существует гораздо лучший способ сделать это. Однако я предоставляю имена и приоритеты заказных имен тем, которые основаны на рабочем.
Вам нужно запустить Worker1 и Worker2 сразу после main_task? Или, может быть, все они могут запускаться одновременно? –
их можно задержать, их не нужно запускать одновременно, но Worker1 и Worker2 должны запускаться только после завершения метода выполнения MainWorker, т. Е. Главной задачи. – aBadAssCowboy
Итак, я не вижу лучшего решения для вашего pproblem –