Макс сидел, откинувшись на спинку, и смотрел на два терминала рядом. Слева - скрипт в один поток. Справа - тот же скрипт, но восемь потоков. Числа внизу были почти одинаковые: сорок одна секунда и тридцать девять. Алекс проходил мимо с чайником и остановился. - Что считаешь? - Хэши. Миллион строк, sha256 по каждой. - Макс ткнул пальцем в правый терминал. - Тут восемь потоков. Восемь, понимаешь? А выигрыш - две секунды. Две. Я час переписывал. - А процессор что говорит? Макс переключился на монитор ресурсов...
Run4Me · Собеседования Python
Останутся только двое
Тикет висел в работе третий час и назывался безобидно: "Пользователь сохранил профиль, обновил страницу - но отображаются старые данные". Макс проверил всё. Форма отправляет. Запрос доходит. В базе новое значение лежит, он видел его своими глазами. Обновляешь страницу - на экране старое. Обновляешь ещё раз - новое. Ещё раз - опять старое. - У меня баг, который то есть, то нет, - сказал он, когда Алекс подсел рядом. - Реплики. - Что? - У вас база с репликами. Пишешь ты в одну, а читаешь с той, которая ближе...
Двенадцать тысяч писем в никуда, питиков ноль: как брокер молча съел мою рассылку
Первым написал не мониторинг. Первым написал человек. "Ребят, а письма о заказах вообще уходят? Клиент третий день ждёт подтверждение." Я открыл графики. Сервис заказов жив, ошибок ноль, питиков нет. Сервис писем жив, ошибок ноль. Между ними стоял RabbitMQ - тоже живой, тоже без единой красной точки. Три зелёных квадрата в ряд, и где-то между ними исчезли двенадцать тысяч писем. Я начал с отправителя, потому что с него всегда начинают. Код публикации был короткий и не вызывал вопросов: channel.basic_publish( exchange="x_notify", routing_key="order...
Как пройти за стену
Макс не выходил из переговорки с обеда. Алекс заглянул туда ближе к шести - тот сидел, уставившись в терминал, и по лицу было видно, что за последний час на экране не поменялось ничего. Алекс придвинул стул и сел рядом. Не тянулся к клавиатуре - просто смотрел, как Макс в очередной раз открывает какой-то конфиг и закрывает. Макс наконец повернулся. Макс открыл рот. И закрыл. Макс набрал. Экран выплюнул список - десятка полтора путей. $ find / -perm -4000 -type f 2>/dev/null Макс повёл пальцем по строчкам...
Как я нашёл десять тысяч запросов в одной строке кода
Восемь секунд. Я обновил вкладку, досчитал про себя до восьми - и таблица наконец прорисовалась. Последние строки выскочили, как нехотя, будто база отдавала их по одной, через силу. Это была обычная страница - список заказов с именами клиентов. Ничего хитрого. И я не понимал, за что она так медленно со мной расплачивается. Первым делом я, конечно, стал грешить на базу. Индексы - на месте. Десять тысяч заказов - не бог весть какие объёмы. Я запустил запрос вручную, без всякого кода: SELECT * FROM orders; Триста миллисекунд...
