Англійська для розробників Hatchet
Вивчайте англійську лексику для Hatchet: довговічні черги завдань, працівники, кроки потоку робіт і пояснення команді платформи оркестрування фонових завдань.
Розмови Hatchet розташовані на перетині словника черги завдань і словника оркестрації потоку роботи, оскільки вони побудовані для обробки тривалих фонових завдань з повторними спробами, контролем одночасності і багатокроковими залежностями.
Ключовий словник
** Задача ** — одинична одиниця роботи, надіслана до Hatchet для асинхронного виконання, яку буде піднято одним з наявних робітників і автоматично повторено у разі невдачі відповідно до правил.
- “Не виконувати цю команду синхронно у обробнику запитів — надсилати її як завдання, щоб повільний виклик нижче не утримував з’ єднання відкритим.” *
** Робочий процес ** — запущений процес, який з’ єднується з Hatchet і виконує завдання, які йому було призначено, масштабуючи горизонтально за допомогою додавання нових екземплярів робочого процесу. “Ми перевантажені на одному робочому екземплярі — масштабування до трьох і цей затримка черги очищається за хвилини, а не за години.”
** Потік роботи / крок ** — послідовність залежних завдань (крок), які Hatchet організовує у певному порядку, з виведенням кожного кроку, доступним для тих завдань, які залежать від нього.
- “Модельуйте це як робочий процес з явними кроками замість виконання всіх завдань одним завданням — якщо другий крок зазнає невдачі, ми хочемо повторити лише цей крок, а не переробити весь конвеєр.” *
** Контроль одночасного виконання ** — механізм Hatchet для обмеження кількості екземплярів завдання або потоку робіт, які виконуються одночасно, часто обмежений обсягом за допомогою ключа, наприклад, ІД клієнта або типу ресурсу.
- “Додати обмеження одночасності, засноване на ідентифікаторі клієнта — зараз один клієнт, який надсилає сто завдань одночасно, знищує всі інші завдання.” *
** Тривале виконання ** — гарантія Hatchet, що роботодавець переживе аварії або перезапуски робочого потоку, відновлюючи роботу з останнього виконаного кроку, а не починаючи з початку. “Якщо робочий процес завершиться аварійно в середині робочого потоку, тривале виконання означає, що він буде відновлено з останнього завершеного кроку після перезапуску — ми не переобробляємо кроки, які вже були успішними.”
Звичайні фрази
- Чи слід це виконувати як завдання, або це достатньо швидко, щоб залишатися синхронним в шляху запиту?
- Чи є у нас проблеми з робочими місцями, чи щось ще спричиняє цей відставання?»
- «Чи це має бути багатокроковий робочий процес, або є достатньою одна задача?»
- Чи є обмеження на одночасність, або може один клієнт голодувати всіх інших завдань?
Приклади висловлювань
Пояснення рішення щодо архітектури: “Ми перенесли створення звітів з обробника запитів до завдання — це може зайняти тридцять секунд, і нічого з цього не повинно блокувати відповідь API.”
Перегляд затримки черги: “Це не проблема коду — у нас просто немає достатньої кількості робочих місць для поточного обсягу, тому давайте скористаємося масштабуванням робочих місць, перш ніж шукати деінде.”
Обговорення відновлення після аварії:
- “Зважаючи на тривале виконання, коли робочий процес перезапускався у середині робочого потоку, він перезапускався з кроку, який ще не був завершений — нічого не потрібно було перезапускати.” *
Професійні поради
- Відштовхувати будь- що з непередбачуваною затримкою з шляху запиту до ** завдання ** — це найпоширеніший спосіб виправлення, який позначається прапорцем під час перегляду повільних кінцевих точок.
- Спостерігайте за worker ємністю як першим кроком діагностики, коли з’ являється затримка черги — це часто простіше, ніж помилка на рівні коду.
- Моделювати багатокрокові процеси як явний ** поток роботи **, щоб часткові помилки можна було повторити лише на невдалих кроках, а не на всьому конвеєрі.
- Рекомендувати ** контроль одночасності ** за обсягом клієнта або ресурсу, коли спільна черга може призвести до голодування одного з важких користувачів.
Практичні вправи
- Поясніть співробітнику команди, чому виклик повільного створення звіту належить до задачі, а не до обробника запитів.
- Описати різницю між одним завданням і багатокроковим потоком робіт, а також вказати, коли слід використовувати кожен з цих методів.
- Напишіть речення, у якому буде запропоновано обмеження одночасності, щоб запобігти перевантаженню спільної черги одним клієнтом.