Статусы в очереди AI-задач — что реально надо отслеживать
Всем привет. Поделюсь опытом с очередями для AI-задач — на практике оказалось, что слишком много статусов сильно усложняет логику и поддержку, а слишком мало — не дает понять, что где зависло или упало. У меня сложилась такая схема, которая работает без лишних заморочек:
1. Очередь принимает задачу — статус «новая» или «ожидает» (чтобы знать, что задачу еще никто не начал).
2. Задача в работе — «обработка» (чтобы понять, что процесс запущен).
3. Успех — «готово» (результат получен и можно забирать).
4. Ошибка — «с ошибкой» (чтобы не терять ошибочные задачи, их можно пытаться переобработать).
5. По желанию «просрочена» или «время вышло» — если есть тайм-ауты, чтобы не висело вечно.
Для проверки обычно смотрю по времени — если статус в обработке уже пару минут, а логов нет — надо поднимать тревогу. Ошибки стараюсь логировать с максимальной детализацией, чтобы быстро понять причину.
Чем проще, тем лучше. Например, «ожидает» и «обработка» — почти одно и то же, но разделять полезно, чтобы мониторить очередь и нагрузку. Статус «готово» можно дополнить отметкой, что результат проверен или «утвержден», если есть такие бизнес-процессы.
Если кто-то давно гонял сложные статусы — расскажите, что реально сработало? Хотелось бы сравнить подходы.
Понятно и просто, мне тоже кажется, что слишком много статусов только путает. Главное — видеть, где задача стоит и когда она упала, остальное уже лишнее усложнение. Резюме «новая», «в работе», «готово» и «ошибка» мне бы хватило.