Я ищу шаблон проектирования, который позволил бы мне «присоединиться» к нескольким активным заданиям, чтобы после их завершения я мог продолжить выполнение другой задачи.
Скажем, у меня есть задания A, B и C, которые требуют различного количества времени для завершения. Когда они ВСЕ завершены, я хочу начать задание D.
Это обычный шаблон проектирования? Что я могу использовать для достижения этой цели? Я подумал о таблице в базе данных, которая просто хранит счетчик общего количества заданий, оставшихся для выполнения, а затем при каждом завершении счетчик уменьшает счетчик, а когда он равен нулю, задача D ставится в очередь. Но я думаю, что могут быть проблемы со счетчиком - мне нужно заблокировать таблицу между чтением и записью?
(Это Rails 6 и Sidekiq 6)
Спасибо ...