Ответ на пост «150 000 этикеток с кодами маркировки за 12 минут - как рвется жопка, а не кошелек!!!»

Каждый раз, когда я такое читаю, у меня появляется огромное желание сказать: "Спасибо тебе, Господи, что ты дал людям QR-коды!" Во-первых, потребителей теперь будет труднее обманывать, во-вторых, русский народ начнет технически прокачиваться.

Сама судьба дает таким людям, как топикстартер, проявить свои умения и фантазию, чтобы обрабатывать эти QR-коды, а они еще и недовольны. Дали тебе PDF — сделай из него TXT, неужели так сложно? Научись программировать хотя бы на Python, уже в детских садах скоро будут учить Python, ну и ты должен освоить. А там уже и узнаешь, что такое многопоточность, динамическая память после того как весь мир это много десятилетий уже использует.

Заказчика на 150 тысяч я сделала просто: закинула предложение нескольким исполнителям и выбрала самое дешевое. Откуда я это знаю? Сам так делаю, всегда выбираю подешевле.

Короче, у топикстартера будет блестящее будущее, но с таким подходом — лет эдак через 20.

5987

150 000 этикеток с кодами маркировки за 12 минут - как рвется жопка, а не кошелек!!!

UPD:

https://kleykod.ru/

Пишет мне клиентка: «Нужно сгенерировать 150 тысяч этикеток с DataMatrix кодами Честного Знака. За один раз. Сможете?»

Конечно смогу. Когда я не мог-то. Мне предлагают заработать, а я что — откажусь?

Я делаю сервис для генерации этикеток. Штрихкоды Wildberries, коды маркировки Честного Знака, и самое вкусное — объединение того и другого на одной наклейке 58 на 40 миллиметров. Обычный заказ — двести-пятьсот штук. Ну тысяча иногда. А тут сто пятьдесят тысяч - можно сказать ОПТОМ . Я такие цифры только в калькуляторе видел.

Сказал «да». А дальше начался цирк.

PDF на 600 мегабайт, серьёзно?

Знаете, что бесит в маркировке больше всего?

Честный Знак выдаёт коды в PDF. Не в CSV. Не в Excel. В PDF. Каждый код — отдельная страница. Сто пятьдесят тысяч кодов — сто пятьдесят тысяч страниц. Шестьсот с лишним мегабайт.

Почему нельзя отдать просто текстовый файл со списком кодов? Никто не знает. Наверное, кто-то в 2019 году решил, что так будет «безопаснее», и с тех пор все страдают.

Источник: <!--noindex--><a href="https://pikabu.ru/story/150_000_yetiketok_s_kodami_markirovki_za_12_minut__kak_rvetsya_zhopka_a_ne_koshelek_13817409?u=http%3A%2F%2Fnews.drom.ru&t=news.drom.ru&h=a049ee7c6f44b51ef04534916a8dae4ac97c2394" title="http://news.drom.ru" target="_blank" rel="nofollow noopener">news.drom.ru</a><!--/noindex-->, «Дневник Хача» / <!--noindex--><a href="https://pikabu.ru/story/150_000_yetiketok_s_kodami_markirovki_za_12_minut__kak_rvetsya_zhopka_a_ne_koshelek_13817409?u=http%3A%2F%2FYouTube.com&t=YouTube.com&h=368a7b01eacdbf0e5b44f1804a2b675f69d9a938" title="http://YouTube.com" target="_blank" rel="nofollow noopener">YouTube.com</a><!--/noindex-->

Источник: news.drom.ru, «Дневник Хача» / YouTube.com

Я написал свой декодер, который вытаскивает коды обратно из этих PDF-ок. По сути, я раскодирую то, что система закодировала без причины. Абсурд? Абсурд. Но если бы ЧЗ выдавал коды нормально — половины моего сервиса не существовало бы. Так что спасибо, Честный Знак, за бизнес-модель.

Ладно, загружаю этот PDF-монстр на сервер. Ответ: 413 — слишком большой файл. Мой сервер настроен на 50 мегабайт. Для обычных заказов хватает за глаза. Для этого — нет.

Поднял лимит. Загрузка прошла. Сервер начал обработку и… тишина. Две минуты — таймаут. Соединение оборвалось. Ну да, 120 секунд на ответ, а тут работы на полчаса минимум.

Три часа ночи, или наверное утра, отдельный сервер, один я

Стало понятно: на основном сервере это не сделать. Он заточен под другое — много мелких быстрых запросов. А тут один запрос размером с небольшую базу данных.

Арендовал отдельную машину. Восемь ядер, шестнадцать гигов оперативки. Развернул копию системы с поднятыми лимитами — загрузка до гигабайта, таймауты до часа. Основной сервер работает как обычно, пользователи ничего не замечают.

И тут прилетело. Оба сервера слушали одну и ту же очередь задач. Я отправляю тестовый запрос на новый сервер — а задачу подхватывает старый. Он, понятное дело, файл не находит (файл-то на другой машине лежит) и падает. Я сижу, смотрю в логи и не понимаю, почему новый сервер простаивает, а старый в ошибках.

Разобрался. Развёл очереди. Каждый сервер слушает свою. Казалось бы, очевидная вещь — но когда ты один и делаешь это в три часа ночи, очевидные вещи имеют свойство становиться неочевидными.

42 минуты. Нет, это слишком

Первый тестовый прогон — 42 минуты на 150 тысяч этикеток. Декодирование шло последовательно, страница за страницей. Восемьдесят штук в секунду. Звучит быстро, но умножьте на сто пятьдесят тысяч.

Для разового заказа — ну ладно, потерпит. Но мне стало обидно. Восемь ядер простаивают, а я гоняю всё в один поток как дурак.

Сел переписывать. Поменял декодер, разогнал до двухсот с лишним страниц в секунду. Распараллелил — разбил PDF на восемь кусков по числу ядер. Каждое ядро жуёт свой кусок, потом склеиваю результат.

Двенадцать минут. От загрузки до готового файла — двенадцать минут. Гигабайтный PDF на выходе открывается и печатается. Я реально сидел и смотрел на это с чувством, которое, наверное, испытывают люди, когда их ребёнок первый раз встаёт на ноги. Ну, примерно.

«Всё готово, присылайте файлы»

Написал клиентке. Сервер поднят, тесты прошли, сто пятьдесят тысяч за двенадцать минут — присылайте реальные файлы, запускаем.

Тишина.

День тишины. Ладно, человек занят. Второй день. Аренда сервера тикает. На третий написал ещё: нужно ещё или нет?

«Нет, у нас отменилось.»

Всё. Четыре слова. Без объяснений. Без «спасибо, что подготовились». (Хотя они откуда могли знать мою бессонную ночь)

Без «может, в следующем месяце». Просто — отменилось.

Как говорится " Ваши ожидания - ваши проблемы"

Потом сказали: босс заказал маркировку в Китае. На фабрике. То есть вся эта история с «срочно нужно 150 тысяч» — оказалась просто одним из вариантов, который рассматривали параллельно. И выбрали не меня.

Свернул сервер. Отключил аренду. Пошёл делать чай с пустырником, ну сами понимаете мне 34 уже.

Про конкурентов и про «а зачем ты вообще это делаешь»

Знаете, что самое смешное? На рынке есть ребята, которые берут по 30 копеек за этикетку. Тридцать копеек! У меня — четырнадцать. Я дешевле в два раза. И при этом у них пять тысяч клиентов, а у меня… ну, сильно меньше...

ну как так сильно получается, как количество салютов в городе в глубинке.

Потому что они раньше начали. Потому что у них маркетинг. Потому что вес домена. Потому что люди привыкли и им лень переходить, даже если дешевле и быстрее. Классика.

А ещё на рынке есть сервисы, где ты загружаешь коды и получаешь результат через полчаса. У меня — через минуту. Но людям не с чем сравнить, они думают, что полчаса — это нормально.

Я не жалуюсь. Ладно, жалуюсь. Но продолжаю делать.

Потому что я знаю, какие боли есть у людей, которые маркируют товары. Я изучил этот рынок вдоль и поперёк. Коды только в PDF — решил. Объединение штрихкода WB и кода ЧЗ на одной наклейке — вместо того, чтобы клеить две — решил. Свой шаблон этикетки, куда штампуются коды — решил. Скорость обработки, от которой у конкурентов бы челюсть отвисла — тоже.

И вот сидишь такой, всё решил, всё работает, быстрее и дешевле всех — а клиент уходит маркировать в Китай.

Зачем я это пишу

Не для рекламы. Хотя, конечно, если вы маркируете товары для Wildberries — ну, вы поняли, гуглите KleyKod.

Я пишу, потому что накипело. Делаешь продукт один. Сам пишешь код, сам делашь СЕО, сам поднимаешь серверы, сам оптимизируешь, сам общаешься с клиентами. Приходит запрос на 150 тысяч — не спишь ночь, поднимаешь инфраструктуру, ускоряешь в три с половиной раза. А потом четыре слова: «у нас отменилось».

И ты не можешь даже нормально расстроиться, потому что через час пишет следующий клиент с вопросом «а у вас штрихкод для Вайлдберриз можно сделать?» — и ты отвечаешь «конечно, сейчас покажу». Потому что а что ещё делать.

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

Но знаете что?

Когда придёт следующий заказ на 150 тысяч — а он придёт, потому что маркировка с марта 2026-го стала обязательной почти для всех категорий товаров — я подниму сервер за час, а не за ночь. И сделаю за 12 минут, а не за 42. Потому что уже проходил.

А жопка? Жопка не порвалась. Жопка закалилась.

Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества