Класс Task
Управляет фоновой задачей. Подробнее…
#include <RuntimeManager/Task>
Диаграмма наследования для RuntimeManager::Task:

Публичные типы
| enum class | StopFlag { None = 0 , Disable = 1 << 0 } |
| enum | State { Unknown , Running , NotRunning , Waiting } |
| using | ErrorCallback = std::function< void(const Error &error)> |
Сигналы
| void | stateChanged (State state) |
Публичные функции
| Task (const QString &taskId, QObject *parent=Q_NULLPTR) | |
| QString | taskId () const |
| Task & | withArguments (const QStringList &arguments) |
| QStringList | arguments () const |
| State | state () const |
| Task & | withMaximumRunningTime (int seconds) |
| int | maximumRunningTime () const |
| Task & | withInterval (int seconds) |
| int | interval () const |
| Task & | withAutostart (bool autostart) |
| bool | autostart () const |
| Task & | withStartDelay (int seconds) |
| int | startDelay () const |
| Task & | withStartTime (const QDateTime &time) |
| QDateTime | startTime () const |
| Task & | withSchedule (const Schedule &schedule) |
| Schedule | schedule () const |
| Task & | withPriority (int seconds) |
| int | priority () const |
| Task & | withIpcSocket (bool enabled=true) |
| bool | hasIpcSocket () const |
| void | start (const ErrorCallback &callback={}) |
| void | stop (StopFlags stopFlags=StopFlag::None, const ErrorCallback &callback={}) |
| QString | socketPath () const |
Подробное описание
Управляет фоновой задачей.
Класс Task предоставляет приложениям возможность запуска фоновых заданий, мониторинга их
выполнения и остановки.
Typedef-члены
ErrorCallback
| using RuntimeManager::Task::ErrorCallback = std::function<void(const Error &error)> |
Функция обратного вызова для методов start() и stop().
Описание перечислений
State
| enum RuntimeManager::Task::State |
| Перечисления | |
|---|---|
| Unknown | Состояние ещё не получено |
| Running | Задача выполняется |
| NotRunning | Задача не выполняется и не была запущена |
| Waiting | Задача не выполняется, но будет автоматически активирована при соблюдении условий или по расписанию |
StopFlag
| enum class RuntimeManager::Task::StopFlag | strong |
| Перечисления | |
|---|---|
| None | Завершается процесс с SIGTERM и SIGKILL |
| Disable | Запрещает последующий запуск повторяющихся или запланированных процессов |
Описание конструкторов и деструктора
Task()
| Task::Task (const QString & taskId, QObject * parent = Q_NULLPTR ) |
Конструктор.
Описание функций-членов
arguments()
| QStringList Task::arguments () const |
Получает аргументы, переданные новому процессу.
Возвращает список аргументов.
autostart()
| bool Task::autostart () const |
Получает информацию о том, должна ли периодическая задача автоматически запускаться в следующих сессиях.
Возвращает true, если автозапуск включён.
hasIpcSocket()
| bool Task::hasIpcSocket () const |
Получает информацию о том, требуется ли задаче IPC-сокет.
Возвращает true, если требуется IPC-сокет.
interval()
| int Task::interval () const |
Получает интервал времени для периодических задач (в секундах).
Возвращает интервал времени.
maximumRunningTime()
| int Task::maximumRunningTime () const |
Получает максимальное время выполнения данной задачи (в секундах). По умолчанию: -1 (без ограничения).
Возвращает максимальное время выполнения.
priority()
| int Task::priority () const |
Получает приоритет задачи. По умолчанию 0.
Возвращает приоритет задачи в виде уровня "nice".
schedule()
| Schedule Task::schedule () const |
Получает расписание данной задачи.
Возвращает расписание данной задачи.
socketPath()
| QString Task::socketPath () const |
Если задача была создана с IPC-сокетом, данный метод возвращает путь к файлу сокета.
Возвращает путь к файлу сокета.
См. также withIpcSocket()
start()
| void Task::start (const ErrorCallback & callback = {}) |
Запускает фоновое задание, определённое ID задачи (task ID), указанным во время конструирования. Задача будет выполнена в отдельном процессе.
Аргументы командной строки могут быть указаны с помощью метода setArguments().
Фактическое состояние процесса можно отслеживать, прослушивая сигнал stateChanged().
Параметры
| callback | Функция, вызываемая при завершении операции |
startDelay()
| int Task::startDelay () const |
Получает задержку запуска данной задачи в секундах. По умолчанию 0.
Возвращает задержку запуска данной задачи в секундах.
startTime()
| QDateTime Task::startTime () const |
Получает время запуска данной задачи.
Возвращает время запуска данной задачи.
state()
| Task::State Task::state () const |
Получает текущее состояние задачи.
Возвращает состояние задачи.
stateChanged
| void RuntimeManager::Task::stateChanged (State state) | signal |
Испускается при изменении состояния процесса.
Параметры
| state | Указывает текущее состояние процесса |
См. также state()
stop()
| void Task::stop (StopFlags stopFlags = StopFlag::None, const ErrorCallback & callback = {} ) |
Запрашивает остановку задачи. Вызов данного метода при неактивной задаче не считается ошибкой.
Параметры
| callback | Функция, вызываемая при завершении операции |
taskId()
| QString Task::taskId () const |
Возвращает ID задачи, переданный при создании данного объекта.
Возвращает ID задачи.
withArguments()
| Task & Task::withArguments (const QStringList & arguments) |
Задаёт аргументы, которые будут переданы в основную функцию выполняемого процесса.
withAutostart()
| Task & Task::withAutostart (bool autostart) |
Задаёт, должна ли периодическая задача автоматически запускаться также в последующих сеансах работы. По умолчанию периодические задачи необходимо явно запускать каждый раз.
withInterval()
| Task & Task::withInterval (int seconds) |
Устанавливает временной интервал (в секундах) для периодических задач. Если это не указано, периодическая задача не будет запущена.
withIpcSocket()
| Task & Task::withIpcSocket (bool enabled = true) |
Устанавливает, должно ли средство выполнения создавать IPC-сокет для обеспечения взаимодействия между приложением и фоновой задачей.
См. также socketPath()
withMaximumRunningTime()
| Task & Task::withMaximumRunningTime (int seconds) |
Устанавливает максимальное время выполнения (в секундах) для задачи.
withPriority()
| Task & Task::withPriority (int seconds) |
Устанавливает приоритет задачи. Значение интерпретируется так же, как параметр команды "nice" в UNIX. Следует обратить внимание, что указание отрицательных значений (более высокий приоритет) в настоящее время не разрешено.
withSchedule()
| Task & Task::withSchedule (const Schedule & schedule) |
Устанавливает расписание для фоновой задачи. Это влияет только на задачи типа "scheduled".
withStartDelay()
| Task & Task::withStartDelay (int seconds) |
Устанавливает задержку (в секундах) перед запуском задачи. Это влияет только на задачи типа "worker".
withStartTime()
| Task & Task::withStartTime (const QDateTime & time) |
Устанавливает время запуска фоновой задачи. Это влияет только на задачи типа "scheduled".
Следует учитывать, что данная настройка создаёт задание, которое выполнится единожды. Если нужно
настроить повторяющиеся задачи, следует использовать setSchedule().