Кейс
Почему задачи завершаются не по порядку, а старые ждут весь день
Реклама, поставленная вечером в очередь, всё ещё выполнялась на следующий день, а более новые задачи уже завершились. Очереди не было: свободное место доставалось той задаче, которая спросила первой. Что мы нашли, что изменили и какие вопросы задать о любом общем инструменте.
Главное
- Задача, которая ждёт весь день, пока завершаются более новые, указывает на отсутствие очереди, а не автоматически на нехватку мощности.
- Порядок «первым пришёл — первым обслужен» нужно построить; без него свободное место достаётся той задаче, которая спросит первой.
- Показ «в очереди» отдельно от «генерируется» отвечает на большинство вопросов команды ещё до того, как их задали.
- Завершённые или зависшие задачи могут продолжать держать мощность, если ничто не освобождает её, когда они перестают в ней нуждаться.
- Оповещайте о долгом ожидании так же, как о сбоях, потому что ожидающая задача никогда не выдаёт ошибку.
Задача со статусом «выполняется» выглядит занятой. Когда работа, поставленная утром, уже готова, а работа, поставленная накануне вечером, всё ещё идёт, статус ничего не говорит команде, и никто не знает, ждать ли, начинать заново или бросить. К нам пришла внутренняя видеокоманда клиента именно с этим: реклама, поставленная вечером в очередь, всё ещё была отмечена как выполняющаяся спустя полдня или целый день, а реклама, поставленная позже той же ночью и даже утром, уже была готова.
Что видела команда: выполняется весь день, а новые задачи завершаются
У каждой рекламы было одно и то же слово — «выполняется», — независимо от того, делалась она или только ждала своей очереди. Спустя полдня или целый день после постановки в очередь некоторые рекламы всё ещё показывали его.
Экран не давал ни малейшего намёка, кто следующий, поэтому порядок казался случайным. Реклама, поставленная позже, была готова; поставленная раньше — нет. Единственным способом для команды хоть что-то узнать было продолжать смотреть.
Почему ожидающая работа идёт не так в любом бизнесе
Когда люди не видят, на каком этапе их работа, они перестают доверять инструменту: начинают заново, расспрашивают или бросают. Это касается и инструмента для видео, и слота на запись, и станка в цехе, и общего аккаунта, которым может пользоваться любой в команде.
Порядок важен не меньше скорости. Задача, которая ждёт день, пока завершаются более новые задачи, обесценивает все сроки, которые команда обещала, и ожидание — только половина дела. Незнание — вторая.
Очередь «первым пришёл — первым обслужен» не возникает сама собой. Что-то должно запоминать порядок, держать место для каждой задачи, пока она ждёт, и отдавать следующее свободное место той задаче, которая ждала дольше всех. Там, где этого никто не построил, мощность достаётся той ожидающей задаче, которая спросит первой, и старая задача может ждать бесконечно.
Что нашли наши инженеры: много ожидания, а очереди нет
Наши инженеры прошли по истории каждой рекламы, которая ждала, и нашли две отдельные проблемы: слишком мало мощности ночью и отсутствие порядка в том, как эта мощность распределяется.
С мощностью всё было просто. Ночью мог работать только один из аккаунтов, которые делают AI-видеоклипы, поэтому одновременно можно было сделать только одну рекламу. Это объясняло медленный прогресс, но не то, почему новые рекламы обгоняли старые.
Порядок и был настоящей находкой. Каждая ожидающая реклама примерно раз в минуту проверяла, освободилось ли место, и та, что случайно спрашивала первой после освобождения места, его и занимала. Очереди не было. Реклама одного редактора, поставленная в очередь сразу после полуночи, была готова к утру, а две рекламы того же редактора, поставленные на несколько минут раньше, всё ещё ждали после обеда.
Та же история показала места, занятые рекламами, которым они больше не были нужны. Реклама, у которой все клипы были готовы и которая ждала только финальной сборки, всё ещё считалась занятой. Так же и запуск, который был перезапущен. И одна реклама с единственным неудавшимся клипом держала своё место почти весь день, оставаясь в статусе «выполняется», пока другие ждали за ней.
Что мы изменили
Мы построили настоящую очередь и сделали так, чтобы статус говорил, что происходит на самом деле.
- Каждая реклама занимает своё место, когда её впервые ставят в очередь, и сохраняет его, пока ждёт, даже если её перезапустили, а свободное место всегда достаётся рекламе, которая ждала дольше всех.
- Реклама покидает очередь, когда начинается, завершается, терпит неудачу или останавливается.
- Рекламы, которые ждут только финальной сборки или у которых все клипы готовы, больше не держат место.
- Команда видит, стоит ли реклама в очереди или генерируется, сколько реклам впереди, сколько аккаунтов работает прямо сейчас и сколько она уже ждёт. Когда подходит её очередь, видно, сколько клипов сделано на данный момент.
- В списке реклам написано «в очереди» или «генерируется» вместо «выполняется» для обоих случаев.
- Когда какая-либо реклама ждёт больше трёх часов, команда получает одно оповещение о том, сколько реклам ждёт и почему: ни один аккаунт не может работать прямо сейчас или все аккаунты, которые могут работать, заняты.
Что теперь есть у бизнеса
Изменение работает на платформе клиента. Рекламы делаются в том порядке, в котором их поставили в очередь, ничью рекламу не обгоняет более новая, и мощность больше не держат рекламы, которым она не нужна.
Команда простыми словами видит, на каком этапе каждая реклама, и узнаёт о долгом ожидании в течение нескольких часов, а не на следующее утро. Мы нашли и исправили это в течение дня после того, как команда сообщила о проблеме, и в тот же день подтолкнули несколько реклам, которые перестали сами проверять наличие места.
Что вы можете проверить сами
- Спросите свою команду или поставщика: когда две задачи ждут одно свободное место, какая его получит? Если никто не может ответить, скорее всего, очереди нет.
- Посмотрите на статус выполняющейся задачи. Говорит ли он, что задачу делают, или только что она ждёт?
- Найдите задачу, которая, как вы знаете, завершена, и посмотрите, не считается ли она всё ещё занятой.
- Спросите, что происходит с местом задачи, если её перезапустить: сохраняет ли она позицию или уходит в конец очереди?
- Спросите, сообщают ли кому-нибудь, когда задача ждёт долго, или только когда она терпит неудачу.
Что делать дальше
Начните с двух вопросов, которые стоит задать: в каком порядке делаются задачи и что на самом деле означает статус. Задайте их своей команде, если инструмент внутренний, или поставщику, если вы его арендуете.
Если задачи обгоняют друг друга и мощности не хватает, сначала наведите порядок. Добавление мощности инструменту без очереди обычно означает, что новые задачи всё равно прыгают вперёд, только быстрее.
Дать общему инструменту настоящий порядок и статус, который говорит, на каком этапе каждая задача, — это та работа, которую наши инженеры делают для клиентов. Строите ли вы следующий инструмент, покупаете или получаете в наследство — задайте вопрос о порядке заранее: на него гораздо легче ответить, пока команда ещё не ждёт.
Частые вопросы
Почему моя задача показывается как выполняющаяся, когда ничего не происходит?
Потому что один статус часто охватывает две разные вещи: задачу, которую делают, и задачу, которая ждёт свободного места. Если у инструмента одно слово для обоих случаев, задача, прождавшая весь день, выглядит точно так же, как та, что началась минуту назад. Спросите, что на самом деле означает статус и может ли инструмент показывать ожидание отдельно от работы.
Как отличить медленную задачу от зависшей?
Помогают две вещи: показывает ли инструмент прогресс, который меняется со временем, и видно ли, чего задача ждёт. Задача, которая долго не продвигается, пока завершаются более новые задачи, обычно указывает на проблему с порядком, а не на медленную задачу. Спросите поставщика, как должна выглядеть на экране ожидающая задача.
Что лучше: добавить мощности или сначала навести порядок?
По нашему опыту, сначала нужно навести порядок. Дополнительная мощность без очереди означает, что самая новая задача всё равно может спросить первой и всё равно обогнать ту, что ждала часами. Когда очередь настоящая, видно, остаётся ли мощность проблемой.
Сколько может ждать задача, прежде чем кому-то сообщат?
Единственно верного ответа нет; это зависит от работы и от того, чего ждёт команда. Важно, чтобы кому-то вообще сообщали, потому что задача, которая ждёт весь день, никогда не выдаёт ошибку и поэтому никогда не выглядит как сбой. Выберите ожидание дольше обычного для вашей работы, и пусть команду оповещают, когда оно превышено.
Может ли завершённая задача всё ещё блокировать другие?
Да. Задача, которая сделала основную работу, но всё ещё ждёт финального шага, или та, которую перезапустили, может продолжать считаться занятой и держать мощность, которая ей больше не нужна. Спросите, освобождает ли инструмент мощность, как только задача перестаёт в ней нуждаться.