Я должен настроить менеджер заданий для команды консоли, которую я создал.
Для выполнения команды консоли требуется от 20 до 30 минут.
Эта консольная команда записывает в базу несколько запросов, и давайте предположим, что ее нельзя сократить до меньшего времени.
Я все создал в Symfony2.8, но я действительно новичок в его использовании.
Так что я введите описание ссылки здесь
Все, что мне нужно, это запустить эту команду как фоновую задачу. Не трогая интерфейс приложения. Кто-нибудь может мне помочь?
Ах, все в порядке. Это необходимо делать регулярно, но по запросу пользователя / клиента.
Это очень сильно зависит от того, что нужно сделать.
Просто запустить один раз, только один раз? Войдите на сервер, используйте tmux или screen, чтобы что-то работало, даже если вы отключились, а затем запустите команду (bin/console name-of-command
).
Запускается регулярно — поместите запись в crontab для пользователя, который должен его запустить.
Не зная, что должен делать сценарий и как часто это будет выполняться (если таковые имеются), трудно сказать, какими могут быть следующие шаги.
Тебе нужно Компонент процесса.
Вы можете запустить php в фоновом режиме следующим образом:
$builder = new ProcessBuilder();
$builder->setPrefix('/usr/bin/php'); // put your php executable here
$cmd = $builder->setArguments(['/full/path/to/php/file/you/want/to/run.php', 'argumentOne', 'argumentTwo'])
->getProcess()
->getCommandLine();
$process = new Process($cmd . ' > /dev/null 2>&1 &'); // async trick here
$process->run();