Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

+1 626новых вакансий за сутки·54 602вакансии открыты сейчас·Новое:Talanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Новые вакансии в TelegramРаботодателям
Talanto
Вакансии
Компании5 579
РезюмеAIПодготовкаСтатьи
BoostТарифыBoost
Войти

Не нашли подходящее?

Пусть нужная вакансия найдёт вас сама.

  1. Подборка в TelegramНовые вакансии по вашему фильтру — сразу в бота.Подключить
  2. Мэтчи по резюмеЗагрузите резюме — покажем, где вы подходите лучше всего.Загрузить
  3. Сохранить фильтрНастройте поиск один раз и возвращайтесь к новым вакансиям.Настроить
Что нового на TalantoTalanto осенью: поиск с цифрами, вакансия по шагам и каталог компаний

Для работодателей

Опубликуйте вакансию — отклики придут в ваш кабинет.

  1. Вакансиябесплатно
  2. Откликиконтакты бесплатно
  3. Наймэтапы и интервью

40 компаний публикуют вакансии напрямую · 4 395 кандидатов открыты к предложениям

Разместить вакансию

Популярные направления

Все подборки
  • Python8 901
  • Облачные технологии6 726
  • QA вакансии2 191
  • Android1 324
  • Инженер данных862
  • Продакт-менеджер318

Разработка

  • iOS1 240
  • Backend вакансии1 212
  • AI вакансии553
  • Fullstack вакансии503
  • Frontend вакансии428
  • Mobile вакансии28

По стеку

  • Go5 300
  • Java3 171
  • Kotlin1 128
  • Node.js1 016
  • Rust862
  • .NET676
  • PHP321
  • C++273
  • C#208

DevOps и инфраструктура

  • Kubernetes3 956
  • Linux-инфраструктура2 871
  • DevOps вакансии2 705
  • Terraform / IaC2 199
  • Мониторинг и Observability1 084
  • CI/CD920
  • SRE314
  • Кибербезопасность38

Аналитика и данные

  • Аналитик данных529
  • Data Scientist437
  • Бизнес-аналитик398
  • Системный аналитик68

Другие направления

  • Проджект-менеджер109
  • UI/UX дизайн67
  • Ручное тестирование14

По регионам

  • Вакансии в США25 642
  • Вакансии в Европе10 304
  • Работа в России3 639
  • Вакансии в Канаде2 255

По формату

  • Удалённые вакансии42 339
  • Релокация в США25 642
  • Гибридная работа5 706
  • Офисная работа4 402

По уровню

  • Senior вакансии22 510
  • Middle вакансии11 429
  • Junior вакансии3 877

Сейчас нанимают

Все компании
  • Wise192 вакансии
  • Rakuten189 вакансий
  • ASML164 вакансии
  • Grab134 вакансии
  • Celonis47 вакансий
  • Spotify37 вакансий
  • Adyen28 вакансий
  • Infobip28 вакансий
  • Monzo20 вакансий
  • Darktrace17 вакансий

Вакансии из 344 источников: карьерные страницы компаний и джоб-борды.

КомпанииО насНовостиПубличная офертаУсловия использованияПолитика конфиденциальностиПоддержка
←К теме LaravelВсе вопросы
LaravelMiddleТеория

Как работает Horizon и как мониторить очереди?

В закладки
Сначала попробуйте ответить сами30 секунд
Сравнить с ответом ↓

Horizon — дашборд и супервизор для Redis-очередей Laravel. Он запускает воркеры, балансирует нагрузку через auto-scaling, сохраняет историю задач в Redis и предоставляет веб-интерфейс для мониторинга.

Установка и запуск

// Установка
composer require laravel/horizon
php artisan horizon:install  // публикует config/horizon.php и дашборд-ассеты
php artisan migrate          // создаёт таблицы для метрик (если нужно)

// Запуск в разработке
php artisan horizon

// Продакшн: Supervisor управляет процессом Horizon
// /etc/supervisor/conf.d/horizon.conf
[program:horizon]
process_name=%(program_name)s
command=php /var/www/html/artisan horizon
autostart=true
autorestart=true
user=www-data
redirect_stderr=true
stdout_logfile=/var/log/horizon.log

Что такое Laravel Horizon

Horizon — официальный пакет для управления Redis-очередями в Laravel. Он заменяет стандартный queue:work-демон, добавляя супервизор, автомасштабирование воркеров и веб-дашборд для наблюдения за задачами в реальном времени.

Конфигурация супервизоров и воркеров

// config/horizon.php
return [
    'defaults' => [
        'supervisor-1' => [
            'connection' => 'redis',
            'queue'      => ['high', 'default', 'low'],
            'balance'    => 'auto',       // auto, simple, false
            'minProcesses' => 1,
            'maxProcesses' => 10,
            'balanceMaxShift'   => 1,    // процессов добавляется за раз
            'balanceCooldown'   => 3,    // секунд между балансировками
            'tries'    => 3,
            'timeout'  => 60,
            'memory'   => 128,
        ],
    ],
    'environments' => [
        'production' => [
            'supervisor-1' => [
                'maxProcesses' => 20,
            ],
        ],
        'local' => [
            'supervisor-1' => [
                'maxProcesses' => 3,
            ],
        ],
    ],
];

Ключевые Artisan-команды

php artisan horizon          // запуск
php artisan horizon:pause   // приостановка (воркеры доедают текущие задачи)
php artisan horizon:continue // возобновление
php artisan horizon:terminate // graceful shutdown (Supervisor перезапустит)
php artisan horizon:status  // статус мастер-процесса
php artisan horizon:clear   // очистить задачи из всех очередей
php artisan horizon:snapshot // записать метрики throughput/runtime вручную

Деплой без простоя

// В Makefile / деплой-скрипте
php artisan horizon:terminate
// Supervisor автоматически поднимет новый процесс с новым кодом
// НЕ нужно делать horizon:restart — terminate + supervisor это уже перезапуск

Мониторинг метрик

Horizon сохраняет в Redis историю выполненных задач (по умолчанию 1 час). Дашборд доступен по адресу /horizon. Закрыть доступ можно через gate в HorizonServiceProvider:

// app/Providers/HorizonServiceProvider.php
protected function gate(): void
{
    Gate::define('viewHorizon', function (User $user) {
        return in_array($user->email, [
            'admin@example.com',
        ]);
    });
}

Метрики throughput и runtime Horizon собирает через horizon:snapshot, которую нужно планировать через Scheduler:

// routes/console.php (Laravel 11+)
Schedule::command('horizon:snapshot')->everyFiveMinutes();

Теги для группировки задач

class ProcessPodcast implements ShouldQueue
{
    public function tags(): array
    {
        // Видно в дашборде; удобно искать задачи по пользователю или объекту
        return ['podcast:' . $this->podcast->id, 'user:' . $this->podcast->user_id];
    }
}

Подводные камни

  • Horizon работает только с Redis: database, SQS и другие драйверы не поддерживаются. Если QUEUE_CONNECTION не redis — Horizon просто не запустится.
  • Забытый horizon:snapshot в Scheduler: без него графики throughput/runtime в дашборде останутся пустыми, хотя очередь работает.
  • horizon:restart не существует: правильный способ перезагрузки — horizon:terminate, после чего Supervisor поднимает новый процесс.
  • Автомасштабирование balance=auto медленно реагирует: по умолчанию balanceCooldown=3 секунды и balanceMaxShift=1 процесс — при пиковой нагрузке воркеры наращиваются постепенно, очередь может накапливаться.
  • Память воркера не сбрасывается: у каждого воркера есть лимит memory (МБ). При превышении процесс сам завершается и Horizon перезапускает его — убедитесь, что лимит разумный, иначе воркеры будут циклически перезапускаться.
  • Срок хранения заданий в Redis: trim_recent_jobs по умолчанию 3600 сек. Для отладки старых ошибок увеличьте его, иначе история пропадёт до того, как вы успеете посмотреть.
  • Дашборд открыт в production по умолчанию: без настройки gate любой пользователь в local-окружении увидит дашборд; в production gate обязателен.

Частые вопросы на собеседовании

  • Как работает система маршрутизации (routing) в Laravel и в чём разница между web и API маршрутами?
  • Что такое migrations в Laravel и как их создавать и запускать?
  • Что такое паттерн MVC и как Laravel его реализует?
  • Что такое Laravel и каковы его ключевые возможности?

Типичные ошибки

  • Отвечать определением без production-сценария.
  • Не называть runtime boundary, security boundary или failure mode.
  • Игнорировать версию API, observability и тестовую проверку.

Что проверяет интервьюер

  • Объясняет механизм своими словами и без выдуманных API.
  • Называет реальные риски, диагностику и критерий корректности.
  • Связывает ответ с текущей документацией и миграционными ограничениями.

Как вы знаете этот вопрос?

Проверить себя по теме Laravel →

Источники

  • https://laravel.com/docs/13.x/csrf
  • https://laravel.com/docs/13.x

Связанные темы

Laravellaravel-productionrisk-analysistechnical-depth