Комментарии 6
О, а расскажите, как правильно готовить экспоненциальные таймауты — когда слать аларм, как их сбрасывать и все такое?
Потому что, скажем, кривая процедура бэкапа в вотсапе не всегда позволяет восстановить его с первого раза. А возрастающий таймаут (после регистрации нового устройтсва растет время до повторного смс-подтверждения) быстро превращает эту процедуру в небольшой филиал ада. Мой личный рекорд таймаута — что-то вроде 80 часов.
Можно определить разумный максимальный размер тайм-аута и захардкодить его (=threshold). В конце алгоритма экспоненциального увеличения тайм-аута сверять получившееся значение с threshold и не допускать чтобы в качестве тайм-аута использовалось значение больше, чем threshold.
И конечно же нужно ограничивать кол-во попыток.
сложноисследуемые баги на продакшене (например, часть сообщений в очереди теряется из-за того, что её начинает читать тестовое окружение).
В своё время куча нервов была убита на то, чтобы понять, почему на работающем сервере, на котором несколько месяцев не было изменений, перестала работать очередь. Точнее 90% задач не доходили до воркера. Разгадка крылась в том, что кто-то запустил рядом машину со старой (древней) версией, которую вообще надо было давно удалить.
Программист-защитник сильнее энтропии