История изменений
Исправление upcFrost, (текущая версия) :
Правильно - так, как правильно в твоем случае
«Как в моем случае» работает в целом норм, но всё-таки хочется понимать как разрабы grpc предполагали его использовать.
Суть - взять тот же ретрай. Я блин не первый кто это делает, даже не в первом миллионе. Сначала сделали велосипед, потом почитал спеку, заюзал опции, ещё почитал, сделал сахар вокруг idempotence чтоб списки методов генерить, чуть ещё поправил - по итогу кода меньше, а работает лучше.
Аналогично ошибки - можно в теле ответа, но тогда ловить исключения в трех местах как я выше написал. Если через Grpc-status - в одном, меньше кода, проще уследить.
Вот теперь от тебя узнал про grpc-opentracing. Просто вся эта хрень раскидана по сотням доков и модулей, и зачастую просто не знаешь есть ли стандартное решение для на вид откровенно стандартной проблемы.
в общем случае - лучше нет, но раз у тебя flask
Не фласк, вернее не только фласк, это просто пример. У меня есть и aiohttp, и фласк, и даже джанга в паре мест. И если «в общем случае нет» - что тогда значит «держать открытым как можно дольше»? Для меня это обычно значит singleton, но тут как ты сам сказал «возможны нюансы», оттуда и вопрос
git submodule, генерить в целевой репе при обновлении сабмодуля
Тоже вариант в целом
Исходная версия upcFrost, :
Правильно - так, как правильно в твоем случае
Как в моем случае уже работает, но всё-таки хочется понимать как разрабы grpc предполагали его использовать.
Суть - взять тот же ретрай. Я блин не первый кто это делает, даже не в первом миллионе. Сначала сделали велосипед, потом почитал спеку, заюзал опции, ещё почитал, сделал сахар вокруг idempotence чтоб списки методов генерить, чуть ещё поправил - по итогу кода меньше, а работает лучше.
Аналогично ошибки - можно в теле ответа, но тогда ловить исключения в трех местах как я выше написал. Если через Grpc-status - в одном, меньше кода, проще уследить.
Вот теперь от тебя узнал про grpc-opentracing. Просто вся эта хрень раскидана по сотням доков и модулей, и зачастую просто не знаешь есть ли стандартное решение для на вид откровенно стандартной проблемы.
в общем случае - лучше нет, но раз у тебя flask
Не фласк, вернее не только фласк, это просто пример. У меня есть и aiohttp, и фласк, и даже джанга в паре мест. И если «в общем случае нет» - что тогда значит «держать открытым как можно дольше»? Для меня это обычно значит singleton, но тут как ты сам сказал «возможны нюансы», оттуда и вопрос
git submodule, генерить в целевой репе при обновлении сабмодуля
Тоже вариант в целом