Я вижу 2 решения, даже если я никогда не пробовал, и я не могу гарантировать, что это работает, так как я не буду описывать все технические проблемы, с которыми вы можете столкнуться.
В обоих случаях вам нужна версия кода, хранящаяся где-то в env /config с обновлением при каждом выпуске.
Первое решение
Для всех заданий, связанных с этой проблемой, значение версии должно быть частью параметров, которые отправляются вместе с самим заданием.
В начале функции дескриптора задания сравните эту версию из задания param = версия из работника env.Если нет необходимости перераспределять задание ... оно может быть обработано верной «версией» работника, или вы можете просто и просто отказаться от него.
Второе решение
Динамически включать код версии в имена очереди.Таким образом, каждый раз, когда вы отпускаете, новые работники слушают новые имена очередей.Таким образом, у вас будет настоящая изоляция версий в отношении рабочих мест и работников.