Запуск модуля через планировщик
Запуск модуля через планировщик
Как можно запускать свой модуль (плагин) в уже запущенной Аксиоме по расписанию в планировщике?
Re: Запуск модуля через планировщик
Понятие «планировщик» в вашем вопросе можно трактовать двояко, поэтому решение зависит от того, что именно вы имеете в виду. Два возможных сценария.
1. Если нужно выполнять задачи внутри уже работающей программы.
Когда ГИС Аксиома уже запущена, и вам требуется выполнять действия вашего модуля через определенные промежутки времени, использовать внешний системный планировщик не нужно. Вместо этого следует воспользоваться встроенными используя PySide2.
Для реализации расписания внутри программы применяется таймер (класс QTimer из библиотеки PySide6). В коде вашего модуля вы создаете этот таймер, задаете ему интервал срабатывания и подключаете к нему функцию, которую необходимо выполнять. Пока программа открыта, таймер будет автоматически вызывать нужные действия.
2. Если нужно управлять программой из внешнего системного планировщика.
Если же вы имеете в виду системный планировщик задач операционной системы (например, Планировщик заданий Windows), который должен подавать команды в уже запущенный процесс ГИС Аксиома, то напрямую «подхватить» и запустить плагин из внешней программы не получится.
В таком случае потребуется организовать межпроцессное взаимодействие. Для этого могут применяться например, сетевые сокеты, именованные каналы или разделяемая память. Ваш модуль в Аксиоме будет ожидать сигналы извне, а внешний планировщик отправлять их для запуска задач. Организовать это несколько сложнее, поэтому, скорее всего, для вашей задачи подойдет первый вариант с внутренним таймером.
1. Если нужно выполнять задачи внутри уже работающей программы.
Когда ГИС Аксиома уже запущена, и вам требуется выполнять действия вашего модуля через определенные промежутки времени, использовать внешний системный планировщик не нужно. Вместо этого следует воспользоваться встроенными используя PySide2.
Для реализации расписания внутри программы применяется таймер (класс QTimer из библиотеки PySide6). В коде вашего модуля вы создаете этот таймер, задаете ему интервал срабатывания и подключаете к нему функцию, которую необходимо выполнять. Пока программа открыта, таймер будет автоматически вызывать нужные действия.
2. Если нужно управлять программой из внешнего системного планировщика.
Если же вы имеете в виду системный планировщик задач операционной системы (например, Планировщик заданий Windows), который должен подавать команды в уже запущенный процесс ГИС Аксиома, то напрямую «подхватить» и запустить плагин из внешней программы не получится.
В таком случае потребуется организовать межпроцессное взаимодействие. Для этого могут применяться например, сетевые сокеты, именованные каналы или разделяемая память. Ваш модуль в Аксиоме будет ожидать сигналы извне, а внешний планировщик отправлять их для запуска задач. Организовать это несколько сложнее, поэтому, скорее всего, для вашей задачи подойдет первый вариант с внутренним таймером.
