LINUX.ORG.RU

История изменений

Исправление upcFrost, (текущая версия) :

Правильно - так, как правильно в твоем случае

«Как в моем случае» работает в целом норм, но всё-таки хочется понимать как разрабы grpc предполагали его использовать.

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

Аналогично ошибки - можно в теле ответа, но тогда ловить исключения в трех местах как я выше написал. Если через Grpc-status - в одном, меньше кода, проще уследить.

Вот теперь от тебя узнал про grpc-opentracing. Просто вся эта хрень раскидана по сотням доков и модулей, и зачастую просто не знаешь есть ли стандартное решение для на вид откровенно стандартной проблемы.

в общем случае - лучше нет, но раз у тебя flask

Не фласк, вернее не только фласк, это просто пример. У меня есть и aiohttp, и фласк, и даже джанга в паре мест. И если «в общем случае нет» - что тогда значит «держать открытым как можно дольше»? Для меня это обычно значит singleton, но тут как ты сам сказал «возможны нюансы», оттуда и вопрос

git submodule, генерить в целевой репе при обновлении сабмодуля

Тоже вариант в целом

Исходная версия upcFrost, :

Правильно - так, как правильно в твоем случае

Как в моем случае уже работает, но всё-таки хочется понимать как разрабы grpc предполагали его использовать.

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

Аналогично ошибки - можно в теле ответа, но тогда ловить исключения в трех местах как я выше написал. Если через Grpc-status - в одном, меньше кода, проще уследить.

Вот теперь от тебя узнал про grpc-opentracing. Просто вся эта хрень раскидана по сотням доков и модулей, и зачастую просто не знаешь есть ли стандартное решение для на вид откровенно стандартной проблемы.

в общем случае - лучше нет, но раз у тебя flask

Не фласк, вернее не только фласк, это просто пример. У меня есть и aiohttp, и фласк, и даже джанга в паре мест. И если «в общем случае нет» - что тогда значит «держать открытым как можно дольше»? Для меня это обычно значит singleton, но тут как ты сам сказал «возможны нюансы», оттуда и вопрос

git submodule, генерить в целевой репе при обновлении сабмодуля

Тоже вариант в целом