Anton Sidorov homepage

Bookmark this to keep an eye on my project updates!

Follow me on GitHub

Jobs, CronJob

Зачем:

  • Пакетная обработка данных
  • Команды/специфические задачи

  • Jobs запуск не по расписанию: вручную
  • Cron Job реализует паттерн Cron Job: запуск по расписанию

Параметры:

  • запускается на выполнение, и после завершения возвращает соответствующий код завершения (exit status), который сообщает, является ли результат успешным или неудачным.
  • гарантируют, что один или несколько подов выполнят свои команды и успешно завершатся. После завершения всех подов без ошибок, Job завершается.
    • job’ы должны быть идемпотентными, есть риск создания 2х job
      • как решать?
    • Ограничение выполнения по времени - параметр activeDeadlineSeconds
    • Возможность одновременного выполнения - параметр concurrencyPolicy: Forbid, Allow, Replace
    • удаление Job
      • ttlSecondsAfterFinished - количество секунд, по истечении которых Job может быть автоматически удален после его завершения (либо Completed, либо Failed). Это также удаляет зависимые объекты, такие как Pod
      • failedJobHistorLimit - кол-во Job в кластере сбойных для удаления
      • successfulJobHistoryLimit - кол-во Job в кластере завершенных успешно для удаления
    • при сбоях
      • количество повторов backoffLimit
      • restartPolicy: Never (никогда) и OnFailure
    • startingDeadlineSeconds

Паттерны

- [Несколько одиночных Job’ов](https://habr.com/ru/companies/otus/articles/546376/) - параметр __completions__
- Несколько параллельно запущенных Job’ов (Work Queue) - параметр __parallelism__