Телефон сказал «Нет связи». Сервер в это время читал этикетку

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Телефон ждёт, пока сервер читает состав на этикетке
Телефон ждёт, пока сервер читает состав на этикетке

В моём приложении для чтения состава был баг, который выглядел как проблема с интернетом. Человек фотографирует упаковку, ждёт, а телефон говорит: «Нет связи». Хотя связь есть. Сервер тоже жив. Все здоровы, кроме пользователя.

По началу я грешил на память и перезапуски. Проверил — нет. Оказалось, распознавание большого фото занимало больше времени, чем клиент был готов ждать. Телефон уже показал ошибку, а сервер ещё честно разбирал мелкий текст на пачке. В итоге один думал «запрос провалился», второй — «я всё сделал». Семейная ссора, только между двумя программами.

Исправили без покупки нового сервера:

  • перед отправкой дали обрезать фото до самого состава — ценник и соседняя полка OCR мало помогают;

  • на сервере уменьшили длинную сторону снимка до 1600 пикселей и вынесли распознавание из основного цикла через asyncio.to_thread;

  • клиентский таймаут подняли с 20 до 45 секунд. Но только таймаутом дело бы не вылечилось, пользователь просто ждал бы подольше.

На телефоне проверили: распознавание доходит до результата, старое «Нет связи» не вылезает. Красивой таблички «было 63 секунды, стало 4» не будет — до исправления я замеры не записал. Очень предусмотрительно, да.

Главный вывод у меня теперь простой: «Нет связи» не всегда про сеть. Иногда это просто сервер который слишком старательно читает состав, пока клиенту уже надоело ждать.

Про само приложение — «Этикетку» — недавно написали в блоге RuStore: https://www.rustore.ru/prostore/etiketka-sostav-produktov Интересно почитать, у кого то же было примерно такое, что таймаут притворялся проблемой с интернетом?

Источник: https://habr.com/ru/articles/1097538/


Интересные статьи

Интересные статьи

Сайт работает, 500-ых нет – но заказы с сайта не поступают. Бизнес теряет деньги, а разработчики даже не подозревают что что-то идет не так. Меня зовут Михаил, я из команды Backend разработки D'Terra....
Пока сотрудники компании саботируют работу в битрикс 24, общаясь в сторонних менеджерах и обмениваясь файлами по почте, локальной сети, флешках и тд., никаких проблем принципе нет ...
Федеральная налоговая служба (ФНС) поддержала предложение о создании списка самоограничения для любителей азартных «Стопазарт». Предложение поступило от заместителя председателя Госдумы Бориса Чернышо...
Все мы пользуемся шкалой времени UTC в том или ином виде, ибо именно по ней выставляется время в каждом часовом поясе. В её основе лежит время TAI (усреднённое время 450 атомных часов, расположенных п...
Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим н...