2009-11-02 3 views
0

На сервере Windows у нас есть задача, которая иногда запускается с помощью «Запланированных задач» для ее управления. (лучше не запускать его напрямую, так как он может быть запущен как конкретный пользователь, а в конфигурации запланированной задачи есть все соответствующие пароли).Запуск запланированной задачи из сценария

Мы хотели бы контролировать это с помощью PHP-скрипта, чтобы посетители веб-сайта могли запросить выполнение задачи. Может ли PHP запустить запланированную задачу? Включая сообщение об ошибке или не предпринимая никаких действий, если задача уже запущена.

Примечание: вероятно, и т.д. файлы блокировка не является полезным решением, так как задача может не/аварии до завершения

ответ

0

Если у вас есть контроль среды PHP, то вы можете напрямую запускать внешние приложения в PHP с помощью shell_exec и с дополнительными параметрами. Также вы можете использовать mutex-подобные проверки в связанной задаче, чтобы предотвратить множественные исполнения.

+0

(а) как это позволит запускать в качестве другого пользователя, используя конфигурацию Windows, другого пользователя (б), как делает эту проверку запущена ли задача? – OJW

2

Простой способ: пусть ваша задача выполняется все время, но ничего не делает, пока не найдет какой-то конкретный файл, а затем удалит его и выполнит свою работу (затем вернитесь, чтобы подождать).

Вы PHP (или любой другой), сценарий просто создать файл ...

+0

Конечно, 'while (true)' loop должен иметь оператор сна где-то там, поэтому он ждет перед следующей проверкой файла. –

+0

Хороший ответ, хотя если задача разбилась, ему потребуется что-то, чтобы перезапустить его. Что возвращается к: как бы перезагрузившаяся вещь знает, запущена ли задача? – OJW

Смежные вопросы