Laravel как запустить процесс демон?

Ссылка скопирована
11 марта 2026 1 ответ

Задача следующая по кнопке нужно запустить обработчика бота, так чтобы он не занимал основном процесс. Пробовал через symfony создать асинхронный процесс, но результат меня не удовлетворил.
Либо основной процесс зависает, дожидаясь завершения бота, либо если запускать процесс, как асинхронный. Он просто умирает вместе с завершением родительского процесса.
Решение нашёл следующее, запускают отдельную очередь и кидаю в неё задачу, где прописан запуск бота и получается очередь работает бесконечно на одну задачу.
Правильное ли это решение? Есть ли возможность сделать это отдельный процессом?

Дополнительно:

https://www.google.ru/search?q=nohup&ie=UTF-8&oe=U...

  • Не совсем понятно, что за

    обработчика бота

    ИМХО, правильным решением является использование вебхуков телеграма, тогда и не понадобятся демоны.

  • Это все изврат. Чтобы написать демона - просто пиши CLI команду с бесконечным циклом и прописывай её в какой-нибудь systemd.
  • Нужно решить такую задачу?

    Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

    Заказать помощь
    Лучший ответ
    1
    Максим Павлов Ответ

    Для запуска процесса демона в Laravel вы можете использовать встроенный в фреймворк инструмент Artisan. Artisan - это консольная утилита, которая позволяет выполнять различные задачи в вашем приложении.

    Для создания демона в Laravel, вам необходимо создать новую команду Artisan. Для этого выполните следующие шаги:

    1. Создайте новую команду, используя Artisan команду `make:command`:

    php artisan make:command DaemonCommand

    php artisan make:command DaemonCommand

    2. После создания команды, вам нужно определить логику вашего демона в методе `handle` этой команды. Например, вы можете написать код, который будет выполняться в бесконечном цикле:

    public function handle()
    {
        while (true) {
            // Ваша логика здесь
            sleep(10); // Пауза на 10 секунд
        }
    }

    public function handle() { while (true) { // Ваша логика здесь sleep(10); // Пауза на 10 секунд } }

    3. Теперь вам нужно зарегистрировать вашу команду в файле `app/Console/Kernel.php`. Добавьте вашу команду в массив `$commands`:

    protected $commands = [
        Commands\DaemonCommand::class,
    ];

    protected $commands = [ Commands\DaemonCommand::class, ];

    4. Теперь вы можете запустить ваш демон, используя Artisan команду `daemon:command`:

    php artisan daemon:command

    php artisan daemon:command

    Ваш демон теперь будет запущен и будет выполняться в фоновом режиме. Помните, что при работе с демонами необходимо учитывать безопасность и оптимизацию производительности вашего приложения.

    Другие ответы (0)

    Пока нет других ответов. Будьте первым, кто поможет автору.

    Ответить на вопрос

    комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Вам также может быть интересно