2013-10-26 2 views
5

Мне нужно выполнить несколько заданий по запросу пользователя. Однако среди них важна только одна.вызов нескольких сотрудников 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 

я мог бы больше к югу рабочие приходят позже. Я хочу знать, является ли это хорошей практикой или существует гораздо лучший способ сделать это. Однако я предоставляю имена и приоритеты заказных имен тем, которые основаны на рабочем.

+0

Вам нужно запустить Worker1 и Worker2 сразу после main_task? Или, может быть, все они могут запускаться одновременно? –

+0

их можно задержать, их не нужно запускать одновременно, но Worker1 и Worker2 должны запускаться только после завершения метода выполнения MainWorker, т. Е. Главной задачи. – aBadAssCowboy

+0

Итак, я не вижу лучшего решения для вашего pproblem –

ответ