Черга завдань: як стежити за довгими операціями у фоні

14 хв

Elbuz доробляє довгі операції у фоні частинами: масову генерацію текстів, авто-збагачення товарів, зіставлення через AI. Вікно «Черга завдань» показує, що вже зроблено, а що не пройшло.

Коли це знадобиться:

  • Операція відповіла «додана до черги завдань» — робота триває у фоні, вікно можна закрити.
  • Завдання завершене, а частина товарів без результату — нижня сітка показує кожен елемент зі статусом, і непройдені можна повторити.
  • У черзі накопичилися старі завдання — кошик у рядку прибирає одне, а старші за три доби зникають самі.
  • Збагачення йде повільно — обробник уже працює кількома потоками, а пришвидшує його другий ключ API.

З чого почати: відкрийте «Черга завдань» лічильником у нижньому рядку базового каталогу.

Що вміє черга завдань

Де це і хто має доступ

Пункту меню в черги завдань немає — вона відкривається з інших вікон.

Базовий каталог
лічильник з годинником у нижньому рядку
Інші входи
посилання «Відкрити список черги завдань» у повідомленні операції; «Черга завдань» у картці API-шаблону вивантаження
Вікна масової роботи
авто-збагачення товарів і масова генерація текстів
Право доступу
вікно «Черга завдань» у правах груп
Підготувати
для AI-завдань — платний тариф і прописаний ключ AI-сервісу

Як читати вікно «Черга завдань»

Коли операція надто довга для одного запиту, програма не намагається доробити її на місці, а створює завдання й показує рядок «Операція не завершена та додана до черги завдань (виконується у фоні)» з посиланням «Відкрити список черги завдань». Це не помилка й не збій — це нормальний хід для масової роботи.

Сама черга розгрібається за системним розкладом щохвилини. Заводити або налаштовувати його не потрібно: він доробляє недороблене навіть тоді, коли процес, який почав роботу, обірвався.

Вікно «Черга завдань»
1Статус
2Кількість спроб
3Нижня сітка
  1. Статус — значення new, work, complete позначають етап завдання; перекладу в них немає.
  2. Кількість спроб — скільки разів система намагалася виконати завдання.
  3. Нижня сітка — елементи вибраного завдання, тобто реальна картина виконаної роботи.

Вікно «Черга завдань» складається з двох сіток одна під одною. Верхня — самі завдання; основні її колонки — «Тип», «Підтип», «Статус», «Дата додавання», «Дата запуску», «Дата завершення», «Час виконання», «Кількість спроб», «ID джерела», «Примітка». Нижня показує елементи того завдання, яке ви вибрали у верхній.

Статуси в обох сітках показані латиницею, як вони записані в базі: new — створено й ще не бралося, work — узято в роботу, complete — програма вважає завдання закінченим. Перекладу в них немає, і це не збій відображення.

Три речі про поведінку черги, які пояснюють більшість запитань:

  • Повторний запуск витісняє попереднє завдання. Запустили ту саму операцію для того самого джерела вдруге — попередня черга разом з усіма своїми елементами зникає, і рахунок починається спочатку.
  • Історія живе три-чотири доби. Коли створюється наступне завдання, програма видаляє всі, додані раніше за початок доби три дні тому: завдання живе від трьох до майже чотирьох діб. Очищення запускає тільки створення звичайного завдання; фонові завдання ІІ-агента його не запускають, тож поки нових завдань немає, старі лишаються. Що було на тому тижні, дізнатися вже не можна.
  • Порожнє завдання не створюється. Якщо під умови операції не підпало жодного товару, завдання видаляється відразу після створення. Ні рядка в черзі, ні запису в журналі — тому «нічого не сталося» іноді означає «нічого й не мало статися».

Ще одна ситуація стосується завдань зі штучним інтелектом: масової генерації текстів, авто-збагачення, зіставлення через AI. На демо-акаунті й на акаунті без прописаного ключа API такі завдання знімаються цілком, з рядком у журналі. Створювати їх доведеться заново — після того, як ключ прописаний.

Хід черги записується в «Журнал операцій» під типом «Черга завдань». Детальніше: де дивитися результат.

Значок кошика у верхньому тулбарі має підказку «Видалити все», але що саме він видалить, залежить від того, як відкрито вікно.

Якщо вікно відкрито з фільтром — із картки шаблону, з вікна масової генерації, — кнопка видаляє лише завдання цього відбору (тип і джерело) разом з їхніми елементами, а в підтвердженні стоїть «Видалити завдання поточного відбору (тип і джерело, показані у вікні)?».

Якщо вікно відкрито без фільтра, кнопка стирає чергу цілого акаунта — усі завдання й усі їхні елементи, і тоді діалог питає «Видалити все?». Відкоту немає в жодному з випадків. Щоб прибрати одне завдання, користуйтеся кошиком у його рядку.

Чому завдання завершене, а зроблено не все

Завдання ділиться на елементи: один товар, одна категорія, один рядок. Їх у завданні можуть бути тисячі, і статус у кожного свій.

Елементи вибраного завдання в черзі
1Статус
2Кількість спроб
  1. Статус — тут видно, які елементи пройшли обробку успішно.
  2. Кількість спроб — скільки разів система намагалася обробити цей елемент.

Елемент, який не вклався у відведений час або вичерпав спроби, отримує статус zombie. Пороги залежать від типу роботи: десь це кілька хвилин, десь година; спроб буває від двох до пʼяти, а в найдовшої гілки лічильник спроб вимкнено зовсім.

Здебільшого зомбі повертається в чергу й береться ще раз — доки спроби не вичерпано. Елемент, який вичерпав спроби, лишається zombie остаточно. Це стосується й елемента, на якому AI щоразу повертає помилку (наприклад, неправильний ключ або немає доступу до моделі): після останньої спроби він стає zombie, і завдання доходить до кінця.

Життя одного елемента черги. Обидві чорні стрілки вниз ведуть до кінця — і саме тому завдання може виглядати завершеним, хоча частина роботи не пройшла
обробник узяв елементминув поріг часуабо закінчилися спробиAI повернув помилку,елемент іде на новуспробуспроби вичерпаноздебільшого повертаєтьсяв чергу,доки спроби не вичерпаноnewстворено, ще не бралосяworkузято в роботуcompleteобробленоzombieне вклався в часабо вичерпав спроби
  • Початок
  • Стан
  • Кінець

Завдання вважається завершеним, коли всі його елементи мають статус complete або zombie. Тобто елементи, які так і не пройшли, зараховуються обробленими, завдання доходить до complete і у верхній сітці виглядає успішним. Справжня картина — тільки в нижній сітці: відфільтруйте елементи за статусом zombie і повторіть операцію саме для них.

За що платите в AI-завданнях

Платна одиниця в такому завданні — не завдання і не товар, а кожне звернення до AI-сервісу. Ціна звернення рахується за токенами: вхідні (те, що програма надіслала сервісу) і вихідні (те, що він відповів) — кожні за своєю ціною, з коефіцієнтом, який залежить від виду операції.

У масовій генерації текстів одне звернення пише одне поле одного товару.

  • Якщо сервіс не повернув підрахунку токенів — наприклад, звернення впало з помилкою, — запису про вартість немає.
  • Якщо елемент пішов на повторну спробу, це нове звернення, і тарифікується воно окремо від першого.

Витрачене видно в «Журналі операцій», у колонці «Вартість»: кожне звернення лишає там рядок зі своєю сумою, а в режимі «Зведено» колонка показує суму за всю операцію.

З балансу гроші знімаються не за кожне звернення окремо: фонове списання складає всі ще не списані звернення одного виду й знімає їх одним рядком, а суму, меншу за 0,01, округлює до 0,01. Ці рядки — у вкладці «Історія операцій» вікна «Баланс».

Як прибрати багато старих завдань одного типу

Окремої кнопки «видалити всі завдання цього типу» у вікні «Черга завдань» немає. Тип завдання видно в колонці «Тип», наприклад «Зіставлення товарів через AI» чи «AI-зіставлення категорій». Прибрати старі завдання AI-зіставлення можна трьома способами:

  • По одному. Кошик у рядку завдання видаляє саме цей рядок разом з його елементами. Виділяється в сітці тільки один рядок, тому кілька завдань за раз так не видалити.
  • Усю чергу разом. Кошик у верхньому тулбарі у вікні, відкритому без відбору, стирає всі завдання акаунта всіх типів. Робіть так, тільки коли в черзі немає нічого потрібного: експорт, імпорт і генерація текстів зникнуть разом із зіставленням.
  • Почекати. Завдання, додані раніше за початок доби три дні тому, видаляються самі, щойно створюється наступне завдання (крім фонових завдань ІІ-агента).

Фільтр у колонці «Тип» тільки ховає рядки з очей: кошик у верхньому тулбарі все одно видаляє за тим відбором, з яким вікно відкрили, а не за фільтром сітки. Повторний запуск того самого зіставлення для того самого джерела теж прибирає попереднє завдання — нове стає на його місце.

Чи можна обробляти чергу паралельно, щоб швидше збагачувало товари

Кнопки чи налаштування для другого обробника немає, і швидкості він не додасть: паралельна обробка вже працює.

  • Обробник стартує сам — щохвилини за розкладом і відразу після створення завдання. Позначку «прогін іде» ставить тільки запуск за розкладом, тому ці два запуски іноді вже йдуть одночасно.
  • Вікна AI-зіставлення товарів і категорій, поки відкриті, самі підганяють обробку свого типу завдань, не частіше ніж раз на 8 секунд.
  • Усередині прогону обробник роздає завдання на кілька одночасних потоків.
  • Межа потоків — не більше пʼяти, коли AI-завдання за останні три хвилини витратили понад 100 000 токенів. Кілька ключів API (OpenAI, Anthropic) піднімають цю межу.

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

Сценарії

Масова генерація завершилась, а частина товарів без тексту

Що зробити. Відкрийте «Черга завдань», виберіть завдання у верхній сітці, у нижній відфільтруйте елементи за статусом zombie. Запустіть операцію ще раз саме для цих товарів.

Що вийде. Нове завдання бере лише товари, що не пройшли першого разу. Якщо причина — ключ або доступ до моделі, спершу виправте ключ: інакше елементи знову стануть zombie.

Черга забита старими завданнями AI-зіставлення

Що зробити. Видаліть потрібні завдання кошиком у їхньому рядку по одному або дочекайтеся автоматичного прибирання. Верхній кошик у вікні без відбору тисніть, лише коли в черзі немає нічого потрібного.

Що вийде. Завдання зникають разом з елементами. Ті, що старші за три доби, програма прибере сама при створенні наступного завдання.

Авто-збагачення тисяч товарів іде надто повільно

Що зробити. Додайте в акаунт ще один ключ API AI-сервісу.

Що вийде. Межа одночасних потоків піднімається, і завдання обробляється швидше. Другий обробник черги шукати не треба — його немає й він не потрібен.

Що робити, коли завдання не пройшло

Що видно, чому так і що робити
Що ви бачитеЧому такЩо зробити
«Операція не завершена та додана до черги завдань (виконується у фоні)» Операція завелика для одного запиту — її підхопила Дочекатися; хід дивитися за посиланням «Відкрити список черги завдань» (про чергу)
Завдання має статус complete, а роботу зроблено не всю Частина елементів стала і зарахована обробленою Відкрити нижню сітку: там кожен показаний зі своїм статусом. Відфільтрувати zombie й повторити операцію для них (про елементи)
«Функції AI недоступні в демо-версії: вони використовують платні сторонні AI-сервіси та доступні лише на платній підписці.» Завдання черги з AI на демо-акаунті. Такі завдання знімаються цілком Перейти на платний тариф і створити завдання заново (про чергу)
«Немає доступу до AI: не налаштовано ключ API AI-сервісу.» Активного ключа AI-сервісу в акаунті немає Прописати ключ і створити завдання заново (про чергу)
«Видалити все?» Підтвердження кошика в «Черзі завдань», відкритій без фільтра. Верхній кошик у такому вікні стирає чергу всього акаунта; у вікні з відбором він видаляє лише завдання цього відбору й питає інакше Відмовитися й видалити одне завдання кошиком у його рядку (про видалення)
«Помилка оновлень» Правка рядка прямо в сітці черги не збереглася Оновити вікно кнопкою «Оновити» й повторити
Замість вмісту «Черга завдань» показує відмову в доступі У групі користувача немає права на вікно «Черга завдань» Видати право в налаштуваннях груп (про доступ)

Часті запитання

Запустив операцію вдруге — куди поділося перше завдання?

Повторний запуск тієї самої операції для того самого джерела витісняє попереднє завдання разом з його елементами. Рахунок починається спочатку.

Чи можна подивитися, що було в черзі минулого тижня?

Ні. Завдання живуть від трьох до майже чотирьох діб і видаляються, коли створюється наступне. Слід операції лишається в «Журналі операцій» під типом «Черга завдань» — 14 днів.

Чи можна вивантажити чергу у файл?

Ні, вивантаження черги у файл немає. Таблицею Excel вивантажується «Журнал операцій» — пунктом «Вивантажити у файл» (як шукати в журналі).

Статуси new, work, complete англійською — це збій?

Ні. Статуси показані так, як записані в базі, перекладу в них немає. Що означає кожен — у розділі про вікно черги.

Запустив операцію, а в черзі нічого немає. Чому?

Під умови операції не підпало жодного товару, і порожнє завдання видалилося відразу після створення. Перевірте відбір товарів і запустіть знову.

Суміжні теми

Чи була стаття корисною?