TGViewer
notes.ml notes.ml @notesdotml · 160 subscribers
Post #6 229
🔄 Захотелось scheduled task

Рано или поздно MLE задумываются о запуске задач по расписанию (раз в час/день/…). В голову начинают лезть мысли, чтобы раскатать и запустить на сервере scheduled таски в cron/celery/airflow и поддерживать этот yet another pipeline на yet another framework (берем за условие, что сельдерей и airflow не раскатаны на команду в силу специфики работы, чисто самому и для себя).

Получаем ряд минусов
:
❌ Разбираемся с граблями еще одного фреймворка
❌ Хостим его
❌ Смотрим в еще один ui

Сидим ворчим от этой идеи, ведь хочется делать модельки и пить кофе, пока они обучаются, а не вот это вот всё инженерное 🥹

На дейлике подсказали интересную вещь, оказывается GitLab CI/CD умеет в scheduled pipelines. Для меня было не очевидно, всегда представлял пайплайны гитлаба только после триггеров типа "новый коммит", "новый MR" или более специфичные, но привязанные к gitflow. Время развивать нейронные связи и ломать собственные стереотипы:

1️⃣ В дефолтных переменных гитлаба есть переменная $CI_PIPELINE_SOURCE, в которой нас интересует значение "schedule". Заходим в текущий .gitlab-ci.yml проекта и добавляем в классические джобы следующее условие:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"
when: never
- when: always

2️⃣ Делаем джобу, которую хотим выполнять регулярно и стейдж под нее, в джобе не забываем прописать:
rules:
- if: $CI_PIPELINE_SOURCE == "schedule"

3️⃣ Через ui гитлаба заходим и настраиваем регулярность выполнения sheduled джобы
4️⃣ Готово 🎉

Чем этот подход хорош:
✅ У нас не добавляется еще одна система, которую надо поддерживать, в то время как корпоративные гитлабы, как правило, отказоустойчивы на уровне компании
✅ Знакомый ui, приятный интерфейс, прозрачная привязка к конкретному проекту
✅ Scheduled пайплайны связаны к веткам проекта, поэтому мы получаем версионирование из коробки
✅ Scheduled пайплайны обладают всеми преимуществами обычных пайплайнов (цепочки джоб, гибкие условия выполнения через настройку rules, множество дефолтных переменных окружения и гибкость настройки кастомных)
✅ Простота настройки

#routine #job
  • 🔥 2
  • 🫡 2
More from @notesdotml
  1. Sep 20, 2026Заметка достаточно настоялась, нашел силы причесать 🫠 Итак, таймлайн: - AppSec 1.0 - проц…
  2. Sep 20, 2026Смена парадигмы безопасной разработки в эпоху software 3.0 Часть 5 - AppSec 3.0, сингулярн…
  3. Aug 19, 2026Как понять, что конфа годная? У тебя нет билета, но доклады на посмотреть копятся сами соб…
  4. Jul 25, 2026photo post
  5. Jul 25, 2026Сегодня наша команда держала стенд на технохабе Сбера, активность по ML System Design в ИБ…
  6. Jul 16, 2026Так, блог-заметки по MOLOT'у подоспели, го читать и лайкать: - ru - eng
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →