Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Job β€” шаблон проСктирования для Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² ΠΈ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… Go программистов

Π― Π½Π°Ρ‡Π°Π» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° Go послС достаточно ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π° программирования Π½Π° PHP. Полагаю судя ΠΏΠΎ послСдним тСндСнциям ΠΌΠΎΠΉ случай Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π΅Π΄ΠΈΠ½ΠΈΡ‡Π½Ρ‹ΠΉ. Go Π² Ρ†Π΅Π»ΠΎΠΌ Π½Π°Π±ΠΈΡ€Π°Π΅Ρ‚ ΠΏΠΎΠΏΡƒΠ»ΡΡ€Π½ΠΎΡΡ‚ΡŒ срСди Web Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ².

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Π² Π½Π°Ρ‡Π°Π»Π΅, разумССтся, Π±Ρ‹Π» ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ дискомфорт ΠΈ Π»ΠΎΠΌΠΊΠ° шаблонов. Π― Π½Π΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π» ΠΊΠ°ΠΊ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΡ‚ ΠΆΠ΅ context.Context, Π·Π°Ρ‡Π΅ΠΌ ΠΎΠ½? Мои ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ ΡƒΠΆΠ΅ Π±Ρ‹Π»ΠΈ Ρ‚Ρ€Π΅ΡΠ½ΡƒΡ‚ΡŒ, Π½ΠΎ ΠΌΠ°Ρ‚Π΅Ρ€ΠΎΠ³ΠΎ PHP программиста Π±Π΅Π· Ρ…Ρ€Π΅Π½Π° Π½Π΅ съСшь. ΠŸΠΎΡ€Π° Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ с этим Π΄Π΅Π»Π°Ρ‚ΡŒ ΠΈ ΠΏΠΈΡΠ°Ρ‚ΡŒ свой вСлосипСд! А ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠ½Π΅, ΠΊΠ°ΠΊ PHP программисту, казалось достаточно ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΌ для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π°Π΄Π°Ρ‡Π° связанных с ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΊΡ€Π°Π΅ΡƒΠ³ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ ΠΊΠ°ΠΌΠ½Π΅ΠΌ Go. УсСвшись Π·Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΠΉ Π½ΠΎΡƒΡ‚Π±ΡƒΠΊ я ΠΏΠΎΡ‡Ρ‚ΠΈ мСсяц ΠΊΠΎΡ€ΠΏΠ΅Π» Π½Π°Π΄ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ. Π― Ρ…ΠΎΡ‚Π΅Π» Π½Π΅ просто ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ сфСричСского коня Π² Π²Π°ΠΊΡƒΡƒΠΌΠ΅, Π° ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π°. Π’Π°ΠΊ ΡΠΊΠ°Π·Π°Ρ‚ΡŒ, proof of concept. Ну ΠΈ Π·Π°ΠΎΠ΄Π½ΠΎ Π½Π°Π±ΠΈΡ‚ΡŒ Ρ€ΡƒΠΊΡƒ Π½Π° Go, Ρ‡Π΅Π³ΠΎ Π³Ρ€Π΅Ρ…Π° Ρ‚Π°ΠΈΡ‚ΡŒ.

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈΠšΠ°ΠΊ видят Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ программисты

А Ссли Π±Π΅Π· ΡˆΡƒΡ‚ΠΎΠΊ, Ρ‚ΠΎ это, Π½Π°Π²Π΅Ρ€Π½ΠΎΠ΅, Ρ‚Π΅ΠΌΠ° для ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΉ ΡΡ‚Π°Ρ‚ΡŒΠΈ.

Π’ качСствС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° использования Π΄Π°Π½Π½ΠΎΠ³ΠΎ шаблона Π±Ρ‹Π» Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ простой прокси-сСрвСр, Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‰ΠΈΠΉ Ρ€ΠΎΠ»ΡŒ балансировщика уровня L4; ΠΊΠ»ΠΈΠ΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡΠΊΠ°Π½ΠΈΡ€ΡƒΡŽΡ‚ ΡƒΠΊΠ°Π·Π°Π½Π½ΡƒΡŽ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡŽ Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ ΠΈ отправляСт всС Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹Π΅ изобраТСния Π½Π° backend сСрвСр для измСнСния ΠΈΡ… Ρ€Π°Π·ΠΌΠ΅Ρ€Π°; backend сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ запросы ΠΏΠΎ измСнСнию Ρ€Π°Π·ΠΌΠ΅Ρ€Π° ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ. Π’ основС всСх Ρ‚Ρ€Π΅Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π»Π΅ΠΆΠΈΡ‚ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Job. Код Ρ‚Π°ΠΊ ΠΆΠ΅ доступСн Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° Github.

Parallel Processing Where the commands are written as tasks to a shared resource and executed by many threads in parallel (possibly on remote machines; this variant is often referred to as the Master/Worker pattern)

Π—Π°Π΄Π°Ρ‡ΠΈ Ρ€Π°Π·Π΄Π΅Π»ΡΡŽΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈ ΠΎΡ€ΠΊΠ΅ΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ своС Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ‚Π°ΠΊ Π½Π°Π·Ρ‹Π²Π°Π΅ΠΌΠΎΠΉ ping/pong синхронизации. Π― ΠΏΡ€ΠΈΠ²Π΅Π΄Ρƒ здСсь лишь нСбольшой кускок ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π΄Π°Ρ‚ΡŒ ΠΎΠ±Ρ‰Π΅Π΅ прСдставлСниС β€” ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° доступна Π² Ρ€Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ Π½Π° Github ΠΏΠΎ ссылкС.

ВсСм Ρ…ΠΎΡ€ΠΎΡˆΠΈΡ… Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΈ Π΄Π° ΠΏΡ€ΠΈΠ±ΡƒΠ΄Π΅Ρ‚ с Π½Π°ΠΌΠΈ сила пэхэпС Π² ΠΌΠΈΡ€Π΅ сусликов.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Задания ( jobs ) β€” это Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΠΎΠ΅ срСдство Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ административных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. Задания ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΊΠ°ΠΊ ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Π΅ Π½Π°Π±ΠΎΡ€Ρ‹ дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ для выполнСния ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ (Π° ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ ΠΈ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ). На ΠΌΠ½ΠΎΠ³ΠΈΡ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… сСрвСрах Π½Π° прСдприятиях сущСствуСт слоТная систСма Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… выполняСтся мноТСство ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ: Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° цСлостности, дСфрагмСнтация ΠΈ пСрСстроСниС индСксов, Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° ΠΈ Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ…, гСнСрация страниц HTML ΠΈ Ρ‚. ΠΏ. Задания ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ ΠΈ Π² автоматичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ настройкС доставки ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΈΠ»ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Рис. 8.1. Окно свойств задания SQL Server Agent

ΠžΡ‡Π΅Π½ΡŒ часто Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎΡΡ‚ΡŒ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ задания с ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвСра Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΡŽ выполнСния схоТих ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ. ΠŸΡ€ΠΎΡ‰Π΅ всСго ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ это Ρ‚Π°ΠΊ: Π² контСкстном мСню для созданного задания Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ Script Job As | CREATE TO | New Query Editor Window (ΠžΡ‚ΡΠΊΡ€ΠΈΠΏΡ‚ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ | Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ | НовоС ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° запросов). Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π² ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΊΠΎΠ΄Π° Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½ скрипт с ΠΊΠΎΠΌΠ°Π½Π΄Π°ΠΌΠΈ Π½Π° созданиС задания с Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΌΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ. Π’Π°ΠΌ останСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΡΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π² этом скриптС, ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠΌ сСрвСрС.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ рассмотрим ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ для создаваСмого задания. На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ General Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΎΠ±Ρ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для задания:

q Category (ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ) β€” этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π½ΠΈ Π½Π° Ρ‡Ρ‚ΠΎ Π½Π΅ влияСт. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠΈ Π·Π°Π΄Π°Π½ΠΈΠΉ ΠΈ для ΠΈΡ… сортировки ΠΏΡ€ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠΈ Π² Management Studio ;

q Description (ОписаниС) β€” простоС описаниС задания, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π°ΠΌΠ΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ администратор Π΄Π΅Π»Π°Π΅Ρ‚ для самого сСбя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Π·Π°Π±Ρ‹Ρ‚ΡŒ, для Ρ‡Π΅Π³ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ это Π·Π°Π΄Π°Π½ΠΈΠ΅;

q Enabled (Π’ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ) β€” Ссли Π·Π°Π΄Π°Π½ΠΈΠ΅ Π² настоящСС врСмя Π²Π°ΠΌ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ, Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠΎΡ‚ΠΎΠΌ, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ просто ΡΠ½ΡΡ‚ΡŒ этот Ρ„Π»Π°ΠΆΠΎΠΊ. ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. МоТно Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ расписаниС для этого задания;

q Source (Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ) β€” Π² этом ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ сСрвСр, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт Π΄Π°Π½Π½ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ( master server ). ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ΅Ρ€Π²Π΅Ρ€Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ (ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… сСрвСрах). ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ΅Ρ€Π²Π΅Ρ€Π½Ρ‹Π΅ задания Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°ΡΡΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π·Π΄. 8.1.6;

q Created (Π‘ΠΎΠ·Π΄Π°Π½ΠΎ), Last modified (ИзмСнСно Π² послСдний Ρ€Π°Π·), Last Executed (Π—Π°ΠΏΡƒΡΠΊΠ°Π»ΠΎΡΡŒ Π² послСдний Ρ€Π°Π·) β€” это, соотвСтствСнно, врСмя создания, врСмя послСднСго измСнСния ΠΈ врСмя послСднСго запуска Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ для задания.

На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Steps (Π­Ρ‚Π°ΠΏΡ‹) производится самая ваТная Ρ‡Π°ΡΡ‚ΡŒ настройки Π·Π°Π΄Π°Π½ΠΈΠΉ. Π—Π΄Π΅ΡΡŒ Π½ΡƒΠΆΠ½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ этапы ( steps ), Ρ‚. Π΅. дСйствия, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… состоит Π·Π°Π΄Π°Π½ΠΈΠ΅. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ этапа производится ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ New (Новый). Π’Π°ΠΌ потрСбуСтся ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ имя создаваСмого этапа ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π΅Π³ΠΎ Ρ‚ΠΈΠΏ. Если ΠΎΡ‚Π±Ρ€ΠΎΡΠΈΡ‚ΡŒ Ρ‚ΠΈΠΏΡ‹ этапов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‚ΡΡ с прСфикса Replication (задания с Ρ‚Π°ΠΊΠΈΠΌΠΈ этапами практичСски всСгда ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ автоматичСски ΠΏΡ€ΠΈ настройкС Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ), Ρ‚ΠΎ Π² вашСм распоряТСнии ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹:

ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹, связанныС с этим Ρ‚ΠΈΠΏΠΎΠΌ этапов:

Β· Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½Ρ‹Π΅ конструкции β€” Ρ†ΠΈΠΊΠ»Ρ‹, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Ρ‚. ΠΏ., Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ этот Ρ‚ΠΈΠΏ этапа;

Β· Π»ΡƒΡ‡ΡˆΠ΅ всСго, ΠΊΠΎΠ½Π΅Ρ‡Π½ΠΎ, Π²Π½Π°Ρ‡Π°Π»Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°Π΄ΠΈΡ‚ΡŒ скрипт ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ спСциализированного срСдства (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Sapien PrimalScript ), Π° Π·Π°Ρ‚Π΅ΠΌ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² ΠΎΠΊΠ½ΠΎ свойств этапа;

q SQL Server Integration Services Package (ΠŸΠ°ΠΊΠ΅Ρ‚ SQL Server Integration Services ) β€” этот Ρ‚ΠΈΠΏ этапов позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ ΠΏΠ°ΠΊΠ΅Ρ‚ SSIS ( DTS ). Π­Ρ‚ΠΎ Π½ΠΎΠ²Ρ‹ΠΉ Ρ‚ΠΈΠΏ этапа, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π½Π΅ Π±Ρ‹Π»ΠΎ Π² SQL Server 2000 (Π² Π½Π΅ΠΌ ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹ DTS ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΈΠ· этапа CmdExec ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки dtsrun ). Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² SSIS Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΡ‡Π΅Π½ΡŒ Π²Π΅Π»ΠΈΠΊΠ°. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅ ΠΏΡ€ΠΎ Ρ€Π°Π±ΠΎΡ‚Ρƒ с SSIS Π±ΡƒΠ΄Π΅Ρ‚ рассказано Π² ΠΌΠΎΠ΄ΡƒΠ»Π΅ 10;

q SQL Server Analysis Services Command (Команда SQL Server Analysis Services ) ΠΈ SQL Server Analysis Services Query (Запрос SQL Server Analysis Services ) β€” эти Ρ‚ΠΈΠΏΡ‹ задания ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ, соотвСтствСнно, ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ ΠΈΠ»ΠΈ запрос ΠΊ Analysis Services (ядру Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… OLAP Π½Π° SQL Server ).

Π”Ρ€ΡƒΠ³ΠΈΠ΅ Π²Π°ΠΆΠ½Ρ‹Π΅ свойства для этапов ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Advanced :

q On success action (ДСйствиС ΠΏΡ€ΠΈ успСхС) ΠΈ On failure action (ДСйствиС ΠΏΡ€ΠΈ сбоС) β€” эти ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ, соотвСтствСнно, послС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ ΠΈΠ»ΠΈ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ (Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка) выполнСния этого этапа. Π’ вашСм распоряТСнии Ρ‚Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° (ΠΎΠ½ΠΈ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹Π΅ ΠΊΠ°ΠΊ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ, Ρ‚Π°ΠΊ ΠΈ для Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ):

Β· Go to the next step (ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ этапу) β€” этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ для ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ²ΡˆΠΈΡ…ΡΡ этапов;

Β· Quit the job reporting success (Π’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· задания, просигнализировав ΠΎΠ± ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ) β€” этот Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ прСдлагаСтся ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для послСднСго этапа, Ссли ΠΎΠ½ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ;

Β· Quit the job reporting failure (Π’Ρ‹ΠΉΡ‚ΠΈ ΠΈΠ· задания, просигнализировав ΠΎΠ± ошибкС) β€” это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ прСдлагаСтся Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ошибки Π² Ρ…ΠΎΠ΄Π΅ выполнСния этапа.

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Рис. 8.2. Π­ΠΊΡ€Π°Π½ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠ΅Ρ€Π²ΠΎΠ³ΠΎ этапа ΠΏΡ€ΠΈ запускС задания

q Retry attempts (ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π°) β€” сколько Ρ€Π°Π· SQL Server Agent Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ этапа, Ссли Π΅Π³ΠΎ Π½Π΅ ΡƒΠ΄Π°Π»ΠΎΡΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ сразу;

q Retry intervals (Π˜Π½Ρ‚Π΅Ρ€Π²Π°Π» ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π°) β€” какая ΠΏΠ°ΡƒΠ·Π° Π±ΡƒΠ΄Π΅Ρ‚ сдСлана SQL Server Agent ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠΌΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ выполнСния (Π² ΠΌΠΈΠ½ΡƒΡ‚Π°Ρ…);

q Append output to existing file (Π”ΠΎΠΏΠΈΡΠ°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌΡƒ Ρ„Π°ΠΉΠ»Ρƒ) β€” ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π² Ρ‚Π΅Ρ… случаях, ΠΊΠΎΠ³Π΄Π° Π²Ρ‹ Ρ…ΠΎΡ‚ΠΈΡ‚Π΅ Π½Π°ΠΊΠ°ΠΏΠ»ΠΈΠ²Π°Ρ‚ΡŒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΉ этапов Π² ΠΊΠ°ΠΊΠΎΠΌ-Ρ‚ΠΎ Ρ„Π°ΠΉΠ»Π΅;

q Append output to existing entry in table (Π”ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Π²Ρ‹Π²ΠΎΠ΄ ΠΊ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ записям Π² Ρ‚Π°Π±Π»ΠΈΡ†Π΅) β€” Ссли этот Ρ„Π»Π°ΠΆΠΎΠΊ установлСн, Ρ‚ΠΎ ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС задания Π² Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ sysjobstepslogs Π±ΡƒΠ΄ΡƒΡ‚ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒΡΡ Π½ΠΎΠ²Ρ‹Π΅ строки. Если ΠΎΠ½ снят, Ρ‚ΠΎ ΠΏΡ€ΠΈ запускС задания Π±ΡƒΠ΄ΡƒΡ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒΡΡ всС ΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΎΠ²Π°Π²ΡˆΠΈΠ΅ Π΄ΠΎ этого записи;

ПослС Ρ‚ΠΎΠ³ΠΎ ΠΊΠ°ΠΊ Π²Ρ‹ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΠ»ΠΈ Π½ΡƒΠΆΠ½Ρ‹Π΅ этапы задания, ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΈΡ… Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Steps ΠΎΠΊΠ½Π° свойств задания. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΌΠ΅Π½ΡΡ‚ΡŒ этапы мСстами ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ стрСлок Π² Π½ΠΈΠΆΠ½Π΅ΠΉ части экрана, Π° Ρ‚Π°ΠΊΠΆΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ этап, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ (ΠΏΡ€ΠΈ запускС ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ).

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅, Ρ‡Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ создании задания, β€” ΠΏΠΎΠ΄ΡƒΠΌΠ°Ρ‚ΡŒ, Π½ΡƒΠΆΠ½ΠΎ Π»ΠΈ Π²Π°ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ это Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ. Если Π΄Π°, Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ расписаниС Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Schedules (Расписания) свойств задания. Π‘Π°ΠΌΠ° настройка расписания вряд Π»ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΊΠ°ΠΊΠΈΡ…-Π»ΠΈΠ±ΠΎ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π². ΠžΡ‚ΠΌΠ΅Ρ‚ΠΈΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΌΠΎΠΌΠ΅Π½Ρ‚Ρ‹:

q Π² SQL Server 2005 прСдусмотрСно Ρ‡Π΅Ρ‚Ρ‹Ρ€Π΅ Ρ‚ΠΈΠΏΠ° расписания (Ρ‚ΠΈΠΏ выбираСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ списка Schedule Type (Π’ΠΈΠΏ расписания) Π² ΠΎΠΊΠ½Π΅ свойств расписания):

Β· Recurring β€” ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π΅ΡΡ дСйствиС, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь, ΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ нСдСлю, ΠΈΠ»ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ мСсяц;

Β· One time β€” дСйствиС Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·;

Β· Start automatically when SQL Server Agent starts β€” Π·Π°Π΄Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ автоматичСски ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΏΡ€ΠΈ запускС SQL Server Agent ;

Β· Start whenever the CPU become idle β€” Π·Π°Π΄Π°Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ Π²ΠΎ врСмя простоя Ρ†Π΅Π½Ρ‚Ρ€Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ процСссора. БостояниС простоя опрСдСляСтся Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Advanced свойств SQL Server Agent ;

q Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Π½ΠΈΠ΅ сработало Π² соотвСтствии с настроСнным расписаниСм, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ слуТба SQL Server Agent Π½Π°Ρ…ΠΎΠ΄ΠΈΠ»Π°ΡΡŒ Π² Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ состоянии. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, настроСн для Π½Π΅Π΅ Ρ€Π΅ΠΆΠΈΠΌ автозапуска;

q с расписаниями ΠΌΠΎΠΆΠ½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚ Π·Π°Π΄Π°Π½ΠΈΠΉ. ЀактичСски, это ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ². Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ список всСх ΠΈΠΌΠ΅ΡŽΡ‰ΠΈΡ…ΡΡ расписаний (с Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒΡŽ создания Π½ΠΎΠ²Ρ‹Ρ… расписаний, измСнСния ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… ΠΈ Ρ‚. ΠΏ.), ΠΌΠΎΠΆΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Manage Schedules (Π£ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ расписаниями) контСкстного мСню для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° SQL Server Agent | Jobs ;

q Ссли Ρƒ вас ΡƒΠΆΠ΅ Π΅ΡΡ‚ΡŒ подходящСС расписаниС, Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ для Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ задания, ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ Π½Π΅ Π½ΡƒΠΆΠ½ΠΎ. Достаточно Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ Pick (Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ) Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Schedules ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π΅ расписаниС. Однако Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ расписания ΠΈ Ρƒ задания Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ Π²Π»Π°Π΄Π΅Π»Π΅Ρ†, поэтому Ρ‚Π°ΠΊΠΈΠΌ способом ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚Π΅ расписания, Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Ρ‹ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ с Π²Π»Π°Π΄Π΅Π»ΡŒΡ†Π΅ΠΌ задания. Для Π²Ρ‹Π±ΠΎΡ€Π° расписания достаточно Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Π² ΠΎΡ‚ΠΊΡ€Ρ‹Π²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Pick Schedule (Π’Ρ‹Π±Ρ€Π°Ρ‚ΡŒ расписаниС) Π½ΡƒΠΆΠ½ΡƒΡŽ строчку ΠΈ Π½Π°ΠΆΠ°Ρ‚ΡŒ OK ;

q для ΠΎΠ΄Π½ΠΎΠ³ΠΎ задания ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ нСсколько расписаний. Π’ΠΎ ΠΌΠ½ΠΎΠ³ΠΈΡ… случаях это ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΎΡ‡Π΅Π½ΡŒ ΡƒΠ΄ΠΎΠ±Π½ΠΎ;

Часто Π±Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π·Π°Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ само ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π»ΠΎΡΡŒ ΠΎ своСм Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ. НапримСр, Ссли Ρƒ вас Π½ΠΎΡ‡ΡŒΡŽ проводится Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΌΠ½ΠΎΠ³ΠΈΡ… Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСрвСрах, Ρ‚ΠΎ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ задания Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎ ΠΎΠΊΠΎΠ½Ρ‡Π°Π½ΠΈΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования ΠΊΠ°ΠΆΠ΄ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΎΡ‚Ρ‡Π΅Ρ‚ ΠΎ Π½Π΅ΠΌ отправлялся Π½Π° ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹ΠΉ ящик администратора. ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΏΠΎΡ‡Ρ‚ΠΎΠ²Ρ‹Π΅ сообщСния Π² ΠΏΠΎΡ‡Ρ‚ΠΎΠ²ΠΎΠΌ ящикС ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π»ΠΎΠ³ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ³ΠΎ копирования Π½Π° всСх сСрвСрах.

ΠΠ°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ «ΠΎΡ‚Ρ‡Π΅Ρ‚Π°» задания ΠΎ своСм Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ Notifications (УвСдомлСния) свойств задания. На этой Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

Β· When the job fails β€” ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρ‚ΠΎΠ³Π΄Π°, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ задания Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° ошибка. Π­Ρ‚ΠΎΡ‚ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ выбираСтся ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ;

Β· When the job succeeds β€” ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ задания;

Β· When the job completes β€” ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‚ΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒΡΡ Π² любом случаС;

q Write to the Windows Application event log (Π—Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ задания Π² ΠΆΡƒΡ€Π½Π°Π» событий ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Windows ) β€” Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ссли ΠΆΡƒΡ€Π½Π°Π»Ρ‹ событий Windows с Ρ€Π°Π·Π½Ρ‹Ρ… сСрвСров автоматичСски пСрСносятся Π² Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² вашСй сСти Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ автоматичСски отслСТиваСт появлСниС ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… записСй Π² ΠΆΡƒΡ€Π½Π°Π»Π°Ρ… событий Windows ΠΈ ΠΏΡ€Π΅Π΄ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ для Π½ΠΈΡ… ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ дСйствия (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, GFI SELM ΠΈΠ»ΠΈ EventTracker );

q Automatically delete job (АвтоматичСски ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π·Π°Π΄Π°Π½ΠΈΠ΅) β€” ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ этого Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° Π·Π°Π΄Π°Π½ΠΈΠ΅ послС выполнСния само сСбя ΡƒΠ΄Π°Π»ΠΈΡ‚. ΠžΠ±Ρ‹Ρ‡Π½ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π·Π°Π΄Π°Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ€Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, созданиС Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…-ΠΊΠΎΠΏΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠ΅Ρ€Π΅Π΄Π°Π²Π°Ρ‚ΡŒΡΡ Π΄Π°Π½Π½Ρ‹Π΅ срСдствами доставки ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² ΠΈΠ»ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Targets (НазначСния) свойств задания Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ, Π½Π° ΠΊΠ°ΠΊΠΈΡ… ΠΈΠΌΠ΅Π½Π½ΠΎ сСрвСрах Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ это Π·Π°Π΄Π°Π½ΠΈΠ΅. Π­Ρ‚Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ доступна Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для Π·Π°Π΄Π°Π½ΠΈΠΉ Π½Π° сСрвСрах, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… настроСн Ρ€Π΅ΠΆΠΈΠΌ ΠΌΡƒΠ»ΡŒΡ‚ΠΈΡΠ΅Ρ€Π²Π΅Ρ€Π½ΠΎΠ³ΠΎ выполнСния. ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΏΡ€ΠΎ настройку этого Ρ€Π΅ΠΆΠΈΠΌΠ° говорится Π² Ρ€Π°Π·Π΄. 8.1.6.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ абстракции Kubernetes: Job, CronJob

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Job ΠΈ CronJob Π² Kubernetes, для Ρ‡Π΅Π³ΠΎ ΠΎΠ½ΠΈ Π½ΡƒΠΆΠ½Ρ‹, Π° для Ρ‡Π΅Π³ΠΎ ΠΈΡ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ стоит.
Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ β€” Π²Ρ‹ΠΆΠΈΠΌΠΊΠ° ΠΈΠ· Π»Π΅ΠΊΡ†ΠΈΠΈ Π²Π΅Ρ‡Π΅Ρ€Π½Π΅ΠΉ ΡˆΠΊΠΎΠ»Ρ‹ Β«Π‘Π»Ρ‘Ρ€ΠΌ KubernetesΒ».

Job: ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡

Job (Ρ€Π°Π±ΠΎΡ‚Π°, Π·Π°Π΄Π°Π½ΠΈΠ΅) β€” это yaml-манифСст, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ создаёт ΠΏΠΎΠ΄ для выполнСния Ρ€Π°Π·ΠΎΠ²ΠΎΠΉ Π·Π°Π΄Π°Ρ‡ΠΈ. Если запуск Π·Π°Π΄Π°Ρ‡ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ с ошибкой, Job пСрСзапускаСт ΠΏΠΎΠ΄Ρ‹ Π΄ΠΎ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ выполнСния ΠΈΠ»ΠΈ Π΄ΠΎ истСчСния Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚ΠΎΠ². Когда Π·Π°Π΄Π°Ρ‡Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Π°, Job считаСтся Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½Π½Ρ‹ΠΌ ΠΈ большС Π½ΠΈΠΊΠΎΠ³Π΄Π° Π² кластСрС Π½Π΅ запускаСтся. Job β€” это ΡΡƒΡ‰Π½ΠΎΡΡ‚ΡŒ для Ρ€Π°Π·ΠΎΠ²Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡.

Когда ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Job

ΠŸΡ€ΠΈ установкС ΠΈ настройкС окруТСния. НапримСр, ΠΌΡ‹ построили CI/CD, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€ΠΈ создании Π½ΠΎΠ²ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ автоматичСски создаёт для Π½Π΅Ρ‘ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅ для тСстирования. Появилась Π²Π΅Ρ‚ΠΊΠ° β€” Π² Π½Π΅Ρ‘ пошли ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ β€” CI/CD создал Π² кластСрС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΉ namespace ΠΈ запустил Job β€” Ρ‚ΠΎΡ‚, Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ, создал Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, Π½Π°Π»ΠΈΠ» Ρ‚ΡƒΠ΄Π° Π΄Π°Π½Π½Ρ‹Π΅, всС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΠΈ сохранил Π² Secret ΠΈ ConfigMap. Π’ΠΎ Π΅ΡΡ‚ΡŒ Job ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΈΠ» Ρ†Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΎΠΊΡ€ΡƒΠΆΠ΅Π½ΠΈΠ΅, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΌΠΎΠΆΠ½ΠΎ Ρ‚Π΅ΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°Ρ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ.

ΠŸΡ€ΠΈ Π²Ρ‹ΠΊΠ°Ρ‚ΠΊΠ΅ helm chart. ПослС развёртывания helm chart с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ…ΡƒΠΊΠΎΠ² (hook) запускаСтся Job, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, ΠΊΠ°ΠΊ Ρ€Π°ΡΠΊΠ°Ρ‚ΠΈΠ»ΠΎΡΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π»ΠΈ ΠΎΠ½ΠΎ.

Π’Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹, ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ врСмя выполнСния Job

Job Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‹ Π΄ΠΎ Ρ‚Π΅Ρ… ΠΏΠΎΡ€, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ΄ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡΡ с ΡƒΡΠΏΠ΅ΡˆΠ½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ Ссли Π² ΠΏΠΎΠ΄Π΅ Π΅ΡΡ‚ΡŒ ошибка, которая ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠΌΡƒ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Ρƒ (exit code Π½Π΅ Ρ€Π°Π²Π΅Π½ 0), Ρ‚ΠΎ Job Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ этот ΠΏΠΎΠ΄ Π΄ΠΎ бСсконСчности. Π§Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΡ‚ΡŒ пСрСзапуски, Π² описании Job Π΅ΡΡ‚ΡŒ Π΄Π²Π° Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Π°: activeDeadlineSeconds ΠΈ backoffLimit.

activeDeadlineSeconds β€” это количСство сСкунд, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ отводится всСму Job Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, это ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π΅ для ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Π° ΠΈΠ»ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ запуска, Π° для всСго Job.

НапримСр, Ссли ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π² Job, Ρ‡Ρ‚ΠΎ activeDeadlineSeconds Ρ€Π°Π²Π΅Π½ 200 сСк., Π° нашС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ°Π΄Π°Π΅Ρ‚ с ошибкой Ρ‡Π΅Ρ€Π΅Π· 5 сСк., Ρ‚ΠΎ Job сдСлаСт 40 ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ послС этого остановится.

backoffLimit β€” это количСство ΠΏΠΎΠΏΡ‹Ρ‚ΠΎΠΊ. Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ 2, Ρ‚ΠΎ Job Π΄Π²Π°ΠΆΠ΄Ρ‹ ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅Ρ‚ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄ ΠΈ остановится.

ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ backoffLimit ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ΅Π½, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, Ссли Π΅Π³ΠΎ Π½Π΅ Π·Π°Π΄Π°Ρ‚ΡŒ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄Ρ‹ бСсконСчно. А вСдь Ρ‡Π΅ΠΌ большС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² кластСрС, Ρ‚Π΅ΠΌ большС рСсурсов API Π½ΡƒΠΆΠ½ΠΎ сСрвСрам, ΠΈ Ρ‡Ρ‚ΠΎ самоС Π³Π»Π°Π²Π½ΠΎΠ΅: ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ‚Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄ β€” это ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ Π΄Π²Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π² остановлСнном состоянии Π½Π° ΡƒΠ·Π»Π°Ρ… кластСра. ΠŸΡ€ΠΈ этом ΠΏΠΎΠ΄Ρ‹ Π² состоянии Completed ΠΈΠ»ΠΈ Failed Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΈ 110 ΠΏΠΎΠ΄ΠΎΠ² Π½Π° ΡƒΠ·Π΅Π», ΠΈ Π² ΠΈΡ‚ΠΎΠ³Π΅, ΠΊΠΎΠ³Π΄Π° Π½Π° ΡƒΠ·Π»Π΅ Π±ΡƒΠ΄Π΅Ρ‚ нСсколько тысяч ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², Π΄ΠΎΠΊΠ΅Ρ€-Π΄Π΅ΠΌΠΎΠ½Ρƒ скорСС всСго Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ ΠΏΠ»ΠΎΡ…ΠΎ.

Учитывая, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ постоянно ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ врСмя ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ°ΠΌΠΈ запуска ΠΏΠΎΠ΄ΠΎΠ², ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ‡Π°Ρ‚ΡŒΡΡ Π² Π½ΠΎΡ‡ΡŒ с пятницы Π½Π° понСдСльник. ОсобСнно, Ссли Π²Ρ‹ Π½Π΅ ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΡ‚Π΅ количСство ΠΏΠΎΠ΄ΠΎΠ² Π² кластСрС, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ находятся Π² статусС Running.

Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ Job

ПослС ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ задания манифСсты Job ΠΈ ΠΏΠΎΠ΄ΠΎΠ², созданных ΠΈΠΌ, ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Π² кластСрС навсСгда. ВсС поля Job ΠΈΠΌΠ΅ΡŽΡ‚ статус Immutable, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ «нСизмСняСмый», ΠΈ поэтому ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ ΠΏΡ€ΠΈ создании Job ΠΈΠ· Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… автоматичСских сцСнариСв сначала ΡƒΠ΄Π°Π»ΡΡŽΡ‚ Job, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ остался ΠΎΡ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π³ΠΎ запуска. ΠŸΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹Ρ… ΠΈΠΌΠ΅Π½ для запуска Ρ‚Π°ΠΊΠΈΡ… Job ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ накоплСнию большого количСства Π½Π΅Π½ΡƒΠΆΠ½Ρ‹Ρ… манифСстов.

Π’ Kubernetes Π΅ΡΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ TTL Controller, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΌΠ΅Π΅Ρ‚ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π½Ρ‹Π΅ Job вмСстС с ΠΏΠΎΠ΄Π°ΠΌΠΈ. Π’ΠΎΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ½ появился Π² вСрсии 1.12 ΠΈ Π΄ΠΎ сих ΠΏΠΎΡ€ находится Π² статусС alpha, поэтому Π΅Π³ΠΎ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ feature gate TTLAfterFinished.

ttlSecondsAfterFinished β€” ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚, Ρ‡Π΅Ρ€Π΅Π· сколько сСкунд ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ TimeToLive ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ²ΡˆΠΈΠΉΡΡ Job вмСстС с ΠΏΠΎΠ΄Π°ΠΌΠΈ ΠΈ ΠΈΡ… Π»ΠΎΠ³Π°ΠΌΠΈ.

ΠœΠ°Π½ΠΈΡ„Π΅ΡΡ‚

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Job-манифСста.

Π’ Π½Π°Ρ‡Π°Π»Π΅ ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ api-Π³Ρ€ΡƒΠΏΠΏΡ‹, Ρ‚ΠΈΠΏ сущности, имя ΠΈ дальшС β€” спСцификация.

Π’ спСцификации ΡƒΠΊΠ°Π·Π°Π½Ρ‹ Ρ‚Π°ΠΉΠΌΠ°ΡƒΡ‚Ρ‹ ΠΈ Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚ ΠΏΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ. ΠžΠΏΡ†ΠΈΠΈ backoffLimit: 2 ΠΈ activeDeadlineSeconds: 60 Π·Π½Π°Ρ‡Π°Ρ‚, Ρ‡Ρ‚ΠΎ Job Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ‹Ρ‚Π°Ρ‚ΡŒΡΡ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ Π½Π΅ Π±ΠΎΠ»Π΅Π΅ Π΄Π²ΡƒΡ… Ρ€Π°Π· ΠΈ Π² ΠΎΠ±Ρ‰Π΅ΠΉ слоТности Π½Π΅ дольшС 60 сСкунд.

template β€” это описаниС ΠΏΠΎΠ΄Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°Π΄Π°Ρ‡Ρƒ; Π² нашСм случаС запускаСтся простой ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ busybox, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ Π΄Π°Ρ‚Ρƒ ΠΈ ΠΏΠ΅Ρ€Π΅Π΄Π°Ρ‘Ρ‚ ΠΏΡ€ΠΈΠ²Π΅Ρ‚ ΠΈΠ· Kubernetes.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

И посмотрим, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ.

Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ поднялся ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ Π² статусС Completed. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ всСгда Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈ ΠΈΠΌΠ΅ΡŽΡ‚ статус Running.

Бтатистику ΠΏΠΎ Job ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ.

Π’ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΠΈΡΡŒ всС задания, врСмя выполнСния β€” 5 сСкунд.

НСнуТный Job ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ Π½Π°Π΄ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ. ΠŸΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ, Ссли ΠΌΡ‹ Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΠΌ Π΅Π³ΠΎ Ρ€ΡƒΠΊΠ°ΠΌΠΈ, Job ΠΈ ΠΏΠΎΠ΄ Π±ΡƒΠ΄ΡƒΡ‚ Π²ΠΈΡΠ΅Ρ‚ΡŒ Π² кластСрС всСгда β€” Π½ΠΈΠΊΠ°ΠΊΠΎΠΉ garbage collector Π½Π΅ ΠΏΡ€ΠΈΠ΄Ρ‘Ρ‚ ΠΈ Π½Π΅ ΡƒΠ΄Π°Π»ΠΈΡ‚ ΠΈΡ….

Если Ρƒ вас Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ ΠΏΠΎ 10-20 Π·Π°Π΄Π°Π½ΠΈΠΉ Π² час, ΠΈ Π½ΠΈΠΊΡ‚ΠΎ ΠΈΡ… Π½Π΅ удаляСт, ΠΎΠ½ΠΈ копятся ΠΈ Π² кластСрС появляСтся ΠΌΠ½ΠΎΠ³ΠΎ абстракций, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΠΈΠΊΠΎΠΌΡƒ Π½Π΅ Π½ΡƒΠΆΠ½Ρ‹, Π½ΠΎ мСсто Π·Π°Π½ΠΈΠΌΠ°ΡŽΡ‚. А ΠΊΠ°ΠΊ я ΡƒΠΆΠ΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠ» Π²Ρ‹ΡˆΠ΅, ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΠΎΠ΄ Π² состоянии Completed β€” это, ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ, Π΄Π²Π° остановлСнных ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° Π½Π° ΡƒΠ·Π»Π΅. А Π΄ΠΎΠΊΠ΅Ρ€ Π΄Π΅ΠΌΠΎΠ½ Π½Π°Ρ‡ΠΈΠ½Π°Π΅Ρ‚ ΠΏΡ€ΠΈΡ‚ΠΎΡ€ΠΌΠ°ΠΆΠΈΠ²Π°Ρ‚ΡŒ, Ссли Π½Π° ΡƒΠ·Π»Π΅ оказываСтся нСсколько сотСн ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ², ΠΈ Π½Π΅ Π²Π°ΠΆΠ½ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΎΠ½ΠΈ ΠΈΠ»ΠΈ остановлСны.

Команда для удалСния:

Π§Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли ΡΠ»ΠΎΠΌΠ°Ρ‚ΡŒ Job

Job, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ выполняСтся Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ интСрСсСн. Π”Π°Π²Π°ΠΉΡ‚Π΅ ΠΌΡ‹ Π½Π°Π΄ Π½ΠΈΠΌ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ поиздСваСмся.

ΠŸΠΎΠΏΡ€Π°Π²ΠΈΠΌ yaml: Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Ρ‚Π΅ΠΌΠΏΠ»Π΅ΠΉΡ‚ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° exit 1. Π’ΠΎ Π΅ΡΡ‚ΡŒ скаТСм Job’у, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π»ΡΡ с ΠΊΠΎΠ΄ΠΎΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ 1. Для Kubernetes это Π±ΡƒΠ΄Π΅Ρ‚ сигналом ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Job Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ Π½Π΅ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅ΠΌ ΠΈ смотрим, Ρ‡Ρ‚ΠΎ происходит: ΠΎΠ΄ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ создался ΠΈ ΡƒΠΏΠ°Π» с ошибкой, Π·Π°Ρ‚Π΅ΠΌ Π΅Ρ‰Ρ‘ ΠΈ Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½. Π‘ΠΎΠ»ΡŒΡˆΠ΅ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ создаётся.

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π’ статистикС ΠΏΠΎΠ΄ΠΎΠ² Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ создано Ρ‚Ρ€ΠΈ ΠΏΠΎΠ΄Π°, Ρƒ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ статус Error. Из статистики Job слСдуСт, Ρ‡Ρ‚ΠΎ Ρƒ нас создан ΠΎΠ΄ΠΈΠ½ Job ΠΈ ΠΎΠ½ Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ.

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ описаниС, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ создано Ρ‚Ρ€ΠΈ ΠΏΠΎΠ΄Π°, ΠΈ Job Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π±Ρ‹Π» достигнут backoffLimit.

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅! Π’ yaml Π»ΠΈΠΌΠΈΡ‚ Ρ€Π°Π²Π΅Π½ 2. Π’ΠΎ Π΅ΡΡ‚ΡŒ, Ссли ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ, Job Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒΡΡ послС Π΄Π²ΡƒΡ… Ρ€Π°Π·, Π½ΠΎ ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ Ρ‚Ρ€ΠΈ ΠΏΠΎΠ΄Π°. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС «послС выполнСния Π΄Π²ΡƒΡ… Ρ€Π°Π·Β» Π·Π½Π°Ρ‡ΠΈΡ‚ 3 ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ. Когда ΠΌΡ‹ ΠΏΡ€ΠΎΠ΄Π΅Π»Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΎ ΠΆΠ΅ самоС Π½Π° интСнсивС с сотнСй студСнтов, Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ Ρƒ ΠΏΠΎΠ»ΠΎΠ²ΠΈΠ½Ρ‹ создаётся Π΄Π²Π° ΠΏΠΎΠ΄Π°, Π° Ρƒ ΠΎΡΡ‚Π°Π²ΡˆΠΈΡ…ΡΡ Ρ‚Ρ€ΠΈ. Π­Ρ‚ΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΈ ΠΏΡ€ΠΎΡΡ‚ΠΈΡ‚ΡŒ.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ограничСния ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ

Π‘Π΄Π΅Π»Π°Π΅ΠΌ бСсконСчный Ρ†ΠΈΠΊΠ» ΠΈ посмотрим, ΠΊΠ°ΠΊ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ β€” activeDeadlineSeconds.

ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ оставим Ρ‚Π΅ΠΌΠΈ ΠΆΠ΅ (60 сСкунд), ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ описаниС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°: сдСлаСм бСсконСчный Ρ†ΠΈΠΊΠ».

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π² Π»ΠΎΠ³ΠΈ, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ сСкунду Ρƒ нас появляСтся Π½ΠΎΠ²Ρ‹ΠΉ Β«HelloΒ» β€” всё ΠΊΠ°ΠΊ Π½Π°Π΄ΠΎ.

Π§Π΅Ρ€Π΅Π· 60 сСкунд ΠΏΠΎΠ΄ оказываСтся Π² статусС Terminating (ΠΈΠ½ΠΎΠ³Π΄Π° это происходит Ρ‡Π΅Ρ€Π΅Π· Β± 10 сСк).

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Вспомним, ΠΊΠ°ΠΊ Π² Kubernetes Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° концСпция остановки ΠΏΠΎΠ΄ΠΎΠ². Когда ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ врСмя ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ всС ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π² ΠΏΠΎΠ΄Π΅, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π°ΠΌ посылаСтся sigterm-сигнал ΠΈ Kubernetes ΠΆΠ΄Ρ‘Ρ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Ρ‘Π½Π½ΠΎΠ΅ врСмя, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΠΎΡ‚Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ Π½Π° этот сигнал.

Π’ нашСм случаС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ β€” это простой bash-скрипт с бСсконСчным Ρ†ΠΈΠΊΠ»ΠΎΠΌ, Ρ€Π΅Π°Π³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π½Π° сигнал Π½Π΅ΠΊΠΎΠΌΡƒ. Kubernetes ΠΆΠ΄Ρ‘Ρ‚ врСмя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π·Π°Π΄Π°Π½ΠΎ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ graceful shutdown. По Π΄Π΅Ρ„ΠΎΠ»Ρ‚Ρƒ β€” 30 сСкунд. Π’ΠΎ Π΅ΡΡ‚ΡŒ Ссли Π·Π° 30 сСкунд ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° sigterm Π½Π΅ срСагировало, дальшС посылаСтся sigkill ΠΈ процСсс с pid 1 Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° убиваСтся, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ останавливаСтся.

Бпустя Ρ‡ΡƒΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 100 сСкунд ΠΏΠΎΠ΄ удалился. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ Π½ΠΈΡ‡Π΅Π³ΠΎ Π² кластСрС Π½Π΅ ΠΎΡΡ‚Π°Π»ΠΎΡΡŒ, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ СдинствСнный способ ΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π² ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π΅ β€” это ΠΏΠΎΡΠ»Π°Ρ‚ΡŒ sigterm ΠΈ sigkill. ПослС этого ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ garbage collector, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ удаляСт всС ΠΏΠΎΠ΄Ρ‹ Π² статусС Terminating, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΎΠ½ΠΈ Π½Π΅ засоряли кластСр.

Π’ описании Job ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ Π±Ρ‹Π» остановлСн, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΡΡ‚ΡŒ прСвысила Π΄ΠΎΠΏΡƒΡΡ‚ΠΈΠΌΡƒΡŽ.

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ПолС restartPolicy

Π­Ρ‚ΠΎΡ‚ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ kubelet, Ρ‡Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ с ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠΌ послС Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ Π±Ρ‹Π» Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½ с ошибкой. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ стоит ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° Always, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ Ссли Ρƒ нас ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ Π² ΠΏΠΎΠ΄Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ, kubelet этот ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ пСрСзапускаСт. ΠŸΡ€ΠΈΡ‡Π΅ΠΌ, всС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Ρ‹ Π² ΠΏΠΎΠ΄Π΅ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΡŽΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π° пСрСзапускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΡƒΠΏΠ°Π²ΡˆΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€.

Π­Ρ‚ΠΎ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ, ΠΈ Ссли Π΅Ρ‘ ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π² Job, Ρ‚ΠΎ Job-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ смоТСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ΄ Π±Ρ‹Π» Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½ с ошибкой. Π‘ Π΅Π³ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ зрСния ΠΏΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΡ‡Π΅Π½ΡŒ Π΄ΠΎΠ»Π³ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ kubelet пСрСзапускаСт ΡƒΠΏΠ°Π²ΡˆΠΈΠΉ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€, Job-ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚.

CronJob: созданиС ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Job ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ

Job позволяСт Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ€Π°Π·ΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π½ΠΎ Π½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ постоянно Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±Π½ΠΎΡΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ. И Π²ΠΎΡ‚ здСсь Kubernetes ΠΏΡ€Π΅Π΄Π»Π°Π³Π°Π΅Ρ‚ CronJob.

CronJob β€” это yaml-манифСст, Π½Π° основании ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Job’ы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² свою ΠΎΡ‡Π΅Ρ€Π΅Π΄ΡŒ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ ΠΏΠΎΠ΄Ρ‹, Π° Ρ‚Π΅ Π΄Π΅Π»Π°ΡŽΡ‚ ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

На ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ взгляд, всё Π²Ρ€ΠΎΠ΄Π΅ Π±Ρ‹ просто, Π½ΠΎ, ΠΊΠ°ΠΊ ΠΈ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ случаС, Ρ‚ΡƒΡ‚ Π΅ΡΡ‚ΡŒ ΠΊΡƒΡ‡Π° мСст, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΡ‹Ρ‚Π°Ρ‚ΡŒ боль.

Π’ манифСстС CronJob ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ расписаниС ΠΈ Π΅Ρ‰Ρ‘ нСсколько Π²Π°ΠΆΠ½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠ².

И Π΄Π²Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Π»ΠΈΡΡŽΡ‚ Π½Π° ΠΈΡΡ‚ΠΎΡ€ΠΈΡŽ выполнСния.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ Π½Π° манифСст CronJob ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Π΅Π΅.

schedule β€” это расписаниС Π² Π²ΠΈΠ΄Π΅ строчки, которая ΠΈΠΌΠ΅Π΅Ρ‚ ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ cron-Ρ„ΠΎΡ€ΠΌΠ°Ρ‚. Π‘Ρ‚Ρ€ΠΎΡ‡ΠΊΠ° Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΡ‚ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ наш Job Π΄ΠΎΠ»ΠΆΠ΅Π½ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ€Π°Π· Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ.

concurrencyPolicy β€” этот ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π·Π°Π΄Π°Π½ΠΈΠΉ. Π‘Ρ‹Π²Π°Π΅Ρ‚ Ρ‚Ρ€Ρ‘Ρ… Π²ΠΈΠ΄ΠΎΠ²: Allow, Forbid, Replace.

Allow позволяСт ΠΏΠΎΠ΄Π°ΠΌ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒΡΡ. Если Π·Π° ΠΌΠΈΠ½ΡƒΡ‚Ρƒ Job Π½Π΅ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π», всС Ρ€Π°Π²Π½ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ создан Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠ³ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ нСсколько Job’ов.

НапримСр, Ссли ΠΎΠ΄ΠΈΠ½ Job выполняСтся 100 сСк., Π° Cron выполняСтся Ρ€Π°Π· Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ, Ρ‚ΠΎ запускаСтся Job, выполняСтся 61 сСк., Π² это врСмя запускаСтся Π΅Ρ‰Ρ‘ ΠΎΠ΄ΠΈΠ½ Job. Π’ ΠΈΡ‚ΠΎΠ³Π΅ Π² кластСрС ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π΄Π²Π° Job’a, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠ΄Π½Ρƒ ΠΈ Ρ‚Ρƒ ΠΆΠ΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ. Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ обратная связь: Ρ‡Π΅ΠΌ большС Job’ов Π·Π°ΠΏΡƒΡ‰Π΅Π½ΠΎ, Ρ‚Π΅ΠΌ большС Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Π½Π° кластСр, Ρ‚Π΅ΠΌ ΠΌΠ΅Π΄Π»Π΅Π½Π½Π΅Π΅ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚, Ρ‚Π΅ΠΌ дольшС ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ ΠΈ Ρ‚Π΅ΠΌ большС ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄ΠΎΠ² запускаСтся β€” Π² ΠΈΡ‚ΠΎΠ³Π΅ всё застываСт ΠΏΠΎΠ΄ бСшСной Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ.

Replace замСняСт Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΡƒΡŽ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ: старый Job убиваСтся, запускаСтся Π½ΠΎΠ²Ρ‹ΠΉ. На самом Π΄Π΅Π»Π΅ это Π½Π΅ самый Π»ΡƒΡ‡ΡˆΠΈΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚, ΠΊΠΎΠ³Π΄Π° ΠΏΡ€Π΅Ρ€Ρ‹Π²Π°Π΅ΠΌ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΆΠ΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΎΡΡŒ, ΠΈ Π½Π°Ρ‡ΠΈΠ½Π°Π΅ΠΌ Ρ‚Ρƒ ΠΆΠ΅ ΡΠ°ΠΌΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ Π·Π°Π½ΠΎΠ²ΠΎ. Π’ ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ случаях это Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π² ΠΊΠ°ΠΊΠΈΡ…-Ρ‚ΠΎ Π½Π΅ΠΏΡ€ΠΈΠ΅ΠΌΠ»Π΅ΠΌΠΎ.

Forbid Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚ запуск Π½ΠΎΠ²Ρ‹Ρ… Job’ов, ΠΏΠΎΠΊΠ° Π½Π΅ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ. Π‘ этой ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ ΡƒΠ²Π΅Ρ€Π΅Π½Π½Ρ‹ΠΌ, Ρ‡Ρ‚ΠΎ всСгда запускаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ экзСмпляр Π·Π°Π΄Π°Ρ‡ΠΈ. ΠŸΠΎΡΡ‚ΠΎΠΌΡƒ Forbid ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто.

jobTemplate β€” это шаблон, ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ создаётся ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Job. Ну Π° всё ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΌΡ‹ ΡƒΠΆΠ΅ Π²ΠΈΠ΄Π΅Π»ΠΈ Π² манифСстС Job.

ΠŸΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ:

Π£Π²ΠΈΠ΄ΠΈΠΌ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ CronJob, расписаниС, ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ запуска, количСство Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Job’ов ΠΈ сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΎΠ½ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π Π°Π·Π΄Π΅Π» Suspend β€” врСмСнная приостановка CronJob. Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ False. Π­Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚, Ρ‡Ρ‚ΠΎ CronJob выполняСтся. МоТно ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ манифСст ΠΈ ΠΏΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ True, ΠΈ Ρ‚ΠΎΠ³Π΄Π° ΠΎΠ½ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ, ΠΏΠΎΠΊΠ° ΠΌΡ‹ Π΅Π³ΠΎ снова Π½Π΅ запустим.

Active β€” сколько Job’ов создано, Last Schedule β€” ΠΊΠΎΠ³Π΄Π° послСдний Ρ€Π°Π· исполнялся.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ статистику ΠΏΠΎ Job’ам ΠΈ ΠΏΠΎΠ΄Π°ΠΌ.

Π’ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ создан ΠΎΠ΄ΠΈΠ½ Job.

Под создан, ΠΎΠ½ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ» ΠΏΠΎΠ»Π΅Π·Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ.

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π§Ρ‚ΠΎ получаСтся: CronJob создал Job, Job создал ΠΏΠΎΠ΄, ΠΏΠΎΠ΄ ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π», Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»ΡΡ β€” всё Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ.

Π•Ρ‰Ρ‘ Ρ€Π°Π· посмотрим Π½Π° CronJob:

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Last Schedule Π±Ρ‹Π» 19 сСкунд Π½Π°Π·Π°Π΄. Если ΠΏΠΎΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π½Π° Job, Ρ‚ΠΎ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ нас появился ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Job ΠΈ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠΎΠ΄.

Π’ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ вопрос: Π° Ρ‡Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚, Ссли CronJob ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ хотя Π±Ρ‹ ΠΏΠ°Ρ€Ρƒ нСдСль? НСуТСли Ρƒ нас Π² кластСрС Π±ΡƒΠ΄Π΅Ρ‚ ΡΡ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΆΠ΅ Job’ов ΠΈ ΠΏΠΎΠ΄ΠΎΠ² Π² статусС Completed, сколько Π² этой ΠΏΠ°Ρ€Π΅ нСдСль ΠΌΠΈΠ½ΡƒΡ‚?

Когда CronJob’ы Ρ‚ΠΎΠ»ΡŒΠΊΠΎ появились ΠΈ Π±Ρ‹Π»ΠΈ Π½Π° стадии Π°Π»ΡŒΡ„Π°-тСстирования, ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ это ΠΈ происходило: Π΄Π΅Π»Π°Π»ΠΈ CronJob Ρ€Π°Π· Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ, смотрСли β€” Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚, всё Π·Π΄ΠΎΡ€ΠΎΠ²ΠΎ, Π° Ρ‡Π΅Ρ€Π΅Π· нСдСлю кластСр становился нСработоспособным, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ количСство остановлСнных ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Π½Π° ΡƒΠ·Π»Π°Ρ… Π±Ρ‹Π»ΠΎ ΠΎΡˆΠ΅Π»ΠΎΠΌΠ»ΡΡŽΡ‰ΠΈΠΌ. Π’Π΅ΠΏΠ΅Ρ€ΡŒ ΠΆΠ΅ ситуация измСнилась.

Π‘Π½ΠΎΠ²Π° ΠΎΡ‚ΠΊΡ€ΠΎΠ΅ΠΌ манифСст ΠΈ посмотрим, Ρ‡Ρ‚ΠΎ Π±Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ:

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. Π€ΠΎΡ‚ΠΎ Π΄ΠΆΠΎΠ± Ρ‡Ρ‚ΠΎ это Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

Появились ΠΎΠΏΡ†ΠΈΠΈ failedJobHistorLimit со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 1 ΠΈ successfulJobHistoryLimit со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 3. Они ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° количСство Job’ов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π² кластСрС. Π’ΠΎ Π΅ΡΡ‚ΡŒ CronJob Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ создаёт Π½ΠΎΠ²Ρ‹Π΅ Job’ы, Π½ΠΎ ΠΈ удаляСт старыС.

Когда Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ CronJob создавался, эти ΠΎΠΏΡ†ΠΈΠΈ Π½Π΅ Π±Ρ‹Π»ΠΈ установлСны ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ CronJob Π·Π° собой Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ удалял. Π‘Ρ‹Π»ΠΎ ΠΌΠ½ΠΎΠ³ΠΎ Π²ΠΎΠ·ΠΌΡƒΡ‰Π΅Π½ΠΈΠΉ ΠΎΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, ΠΈ Ρ‚ΠΎΠ³Π΄Π° поставили Π΄Π΅Ρ„ΠΎΠ»Ρ‚Π½Ρ‹Π΅ Π»ΠΈΠΌΠΈΡ‚Ρ‹.

И Π½Π° сладкоС β€” ΠΏΡ€ΠΎ startingDeadlineSeconds

Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅ startingDeadlineSeconds ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‚ количСство сСкунд, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΎΡΡ€ΠΎΡ‡ΠΈΡ‚ΡŒ запуск Job. Если ΠΏΠΎ ΠΊΠ°ΠΊΠΈΠΌ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°ΠΌ Job Π½Π΅ создался ΠΈ с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°, ΠΊΠΎΠ³Π΄Π° Π΅Π³ΠΎ Π½Π°Π΄ΠΎ Π±Ρ‹Π»ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ, ΠΏΡ€ΠΎΡˆΠ»ΠΎ большС сСкунд, Ρ‡Π΅ΠΌ ΡƒΠΊΠ°Π·Π°Π½ΠΎ Π² этом ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅, Ρ‚ΠΎ ΠΎΠ½ ΠΈ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ создан. А Ссли мСньшС, Ρ‚ΠΎ Ρ…ΠΎΡ‚ΡŒ ΠΈ с ΠΎΠΏΠΎΠ·Π΄Π°Π½ΠΈΠ΅ΠΌ, Job Π±ΡƒΠ΄Π΅Ρ‚ создан.

Π’ΡƒΡ‚ Π΅ΡΡ‚ΡŒ нСбольшая Π»ΠΎΠ²ΡƒΡˆΠΊΠ°, Ссли concurrencyPolicy Ρ€Π°Π·Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ созданиС Job, Ρ‚ΠΎ ΠΏΡ€ΠΈ большом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° startingDeadlineSeconds Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ запуск дСсятков ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… Job ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. Для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ всплСска Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π² ΠΊΠΎΠ΄ Kubernetes Π·Π°Ρ…Π°Ρ€Π΄ΠΊΠΎΠΆΠ΅Π½Ρ‹ Π»ΠΈΠΌΠΈΡ‚Ρ‹ ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρ‹:

Если ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ startingDeadlineSeconds Π½Π΅ ΡƒΠΊΠ°Π·Π°Π½ Π² манифСстС:

CronJob ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ ΠΏΡ€ΠΈ создании Job смотрит Π½Π° врСмя послСднСго запуска β€” Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ LastscheduleTime Π² status: ΠΈ считаСт, сколько Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΏΡ€ΠΎΡˆΠ»ΠΎ с послСднСго запуска. И Ссли это врСмя достаточно Π²Π΅Π»ΠΈΠΊΠΎ, Π° Ρ‚ΠΎΡ‡Π½Π΅Π΅ Π·Π° этот ΠΏΡ€ΠΎΠΌΠ΅ΠΆΡƒΡ‚ΠΎΠΊ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ CronJob Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Π» ΠΎΡ‚Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ 100 Ρ€Π°Π· ΠΈΠ»ΠΈ большС, Π½ΠΎ Ρƒ Π½Π΅Π΅ этого Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠ»ΠΎΡΡŒ:

Π’ этом случаС происходит Π½Π΅Ρ‡Ρ‚ΠΎ странноС: CronJob пСрСстаСт Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ, Π½ΠΎΠ²Ρ‹Π΅ Job’ы большС Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ. Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± этом ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ Π² Events, Π½ΠΎ хранится Ρ‚Π°ΠΌ Π½Π΅Π΄ΠΎΠ»Π³ΠΎ. Для восстановлСния Ρ€Π°Π±ΠΎΡ‚Ρ‹ приходится ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ CronJob ΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π·Π°Π½ΠΎΠ²ΠΎ.

И Π΅Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ странноС:

Если установлСн ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ startingDeadlineSeconds, Ρ‚ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ мСняСтся. 100 ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Ρ… запусков Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΡƒΠ»ΠΎΠΆΠΈΡ‚ΡŒΡΡ Π² количСство сСкунд, ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹Ρ… Π² этом ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π΅. Ρ‚. Π΅. Ссли Π² расписании стоит Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Ρ€Π°Π· Π² ΠΌΠΈΠ½ΡƒΡ‚Ρƒ, Π° startingDeadlineSeconds мСньшС 6000 сСкунд, Ρ‚ΠΎΠ³Π΄Π° CronJob Π±ΡƒΠ΄Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ всСгда, Π½ΠΎ Π² этом случаС ΠΏΡ€ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ΅ Allow Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ запуск мноТСства Job.

И Π½Π°ΠΊΠΎΠ½Π΅Ρ†, Π»ΡŽΠ±ΠΎΠΏΡ‹Ρ‚Π½Ρ‹ΠΉ side-эффСкт:

Если ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ startingDeadlineSeconds Ρ€Π°Π²Π½ΠΎΠΉ Π½ΡƒΠ»ΡŽ, Job’ы Π²ΠΎΠΎΠ±Ρ‰Π΅ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°ΡŽΡ‚ ΡΠΎΠ·Π΄Π°Π²Π°Ρ‚ΡŒΡΡ.

Если Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ ΠΎΠΏΡ†ΠΈΡŽ startingDeadlineSeconds, ΡƒΠΊΠ°Π·Ρ‹Π²Π°ΠΉΡ‚Π΅ Π΅Ρ‘ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ мСньшС, Ρ‡Π΅ΠΌ ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» выполнСния Π² расписании, Π½ΠΎ Π½Π΅ ноль.
ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠΉΡ‚Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ Forbid. НапримСр, Ссли Π±Ρ‹Π»ΠΎ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½ΠΎ 5 Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² ΠΈ наступило ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ врСмя исполнСния, Ρ‚ΠΎ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π»Π΅Ρ€ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ 5 Ρ€Π°Π· Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠΏΡƒΡ‰Π΅Π½Π½Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ, Π° создаст Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Job. Π­Ρ‚ΠΎ Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ CronJob

A cron job creates a job object about once per execution time of its schedule. We say «about» because there are certain circumstances where two jobs might be created, or no job might be created. We attempt to make these rare, but do not completely prevent them. Therefore, jobs should be idempotent.

Π’ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π½Π° русский:

CronJob создаёт ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Job ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· Π½Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ врСмя исполнСния ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ. ΠœΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ Β«ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π½ΠΎΒ», ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ ΠΈΠ½ΠΎΠ³Π΄Π° Π±Ρ‹Π²Π°ΡŽΡ‚ случаи, ΠΊΠΎΠ³Π΄Π° ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Π΄Π²Π° Job’а ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΈΠ»ΠΈ Π½ΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ. ΠœΡ‹ Π΄Π΅Π»Π°Π΅ΠΌ всё, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ случаи ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ Ρ€Π΅Π΄ΠΊΠΈΠΌΠΈ, Π½ΠΎ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ этого Π½Π΅ получаСтся. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Job’ы Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½Ρ‹.

Π˜Π΄Π΅ΠΌΠΏΠΎΡ‚Π΅Π½Ρ‚Π½Ρ‹ β€” Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒΡΡ Π½Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ срСдС нСсколько Ρ€Π°Π· ΠΈ всСгда Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚.

Π’ ΠΎΠ±Ρ‰Π΅ΠΌ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ CronJob Π½Π° свой страх ΠΈ риск.

Π’ качСствС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Ρ‹ CronJob ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π°ΠΏΡƒΡ‰Π΅Π½ самый ΠΎΠ±Ρ‹Ρ‡Π½Ρ‹ΠΉ crond. Π‘Π΅Π· выкрутасов. Π‘Ρ‚Π°Ρ€Ρ‹ΠΉ Π΄ΠΎΠ±Ρ€Ρ‹ΠΉ cron Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π±Π΅Π· ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, ΠΈ ΠΌΡ‹ всСгда Π·Π½Π°Π΅ΠΌ, Ρ‡Ρ‚ΠΎ Π·Π°Π΄Π°Ρ‡ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½Ρ‹ ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·. Надо Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΠ±Π΅ΡΠΏΠΎΠΊΠΎΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Π½ΡƒΡ‚Ρ€ΠΈ ΠΏΠΎΠ΄Π° с ΠΊΡ€ΠΎΠ½ΠΎΠΌ Π½Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ нСсколько Π·Π°Π΄Π°Ρ‡.

Π˜Π·ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ абстракции ΠΈ ΠΏΠΎΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒΡΡ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ с Kubernetes ΠΌΠΎΠΆΠ½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ видСокурса Kubernetes Π‘Π°Π·Π°. Π’ октябрС 2020 ΠΌΡ‹ ΠΎΠ±Π½ΠΎΠ²ΠΈΠ»ΠΈ курс, подробности здСсь.

Автор ΡΡ‚Π°Ρ‚ΡŒΠΈ: Π‘Π΅Ρ€Π³Π΅ΠΉ Π‘ΠΎΠ½Π΄Π°Ρ€Π΅Π² β€” ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΡƒΡŽΡ‰ΠΈΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΠΎΡ€ Southbridge, Certified Kubernetes Administrator, ΠΎΠ΄ΠΈΠ½ ΠΈΠ· Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² kubespray с ΠΏΡ€Π°Π²Π°ΠΌΠΈ Π½Π° принятиС pull request.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *