Название: Сервис-планировщик с поддержкой QtScript Отправлено: Rem Norton от Сентябрь 10, 2011, 01:11 В общем стала задачи автоматизации одного комплекса. Вдоволь надолбавшись со стандартными Windows-средствами изваял сие "творенье".
Исходники в приложении. ВНИМАНИЕ: теоретически код кроссплатформенный, НО тестировался только под виндой (в Linux хватает cron + sh). Как работает: Читает файл "crontab" формат как в Linux и по расписанию выполняет скрипты (QtScript с маленьким довеском). ВЫЖНО: файл "crontab" (без расширения) должен быть рядом с exe-шником (пример crontab в приложении). Относительные пути так же вычисляются от местоположения exe-шника. Дополнительный объекты в скриптах: 1. "ODBC" - Выполняет подключение к БД. Умеет: 1.1 Соединиться с сервером Код: bool open(QString type, QString server, QString db, QString name); type - тип соединения (см. ниже по тексту) server - сервер db - БД user, pwd - логин и пароль name - уникальное (для одного скрипта) имя подключения Код: bool open(QString conn, QString name); conn - полная строка подключения (ODBC Connection String) name - уникальное (для одного скрипта) имя подключения 1.2 Выполнить запрос, с получением единичного результата: Код: QVariant execScript(QString script) script - собственно запрос 1.3 Закрыть соединение с базой: Код: void close() 1.4 Рассказать о своем состоянии: Код: bool isError() // true, если последняя операция вызвала ошибку Поддерживаемые типы соединения: MSSQL2000 - MSSQL 2000 MSSQL2000_TR - MSSQL 2000 без авторизации (trusted) MSSQL2005 - MSSQL 2005 MSSQL2005_TR - MSSQL 2005 без авторизации (trusted) PSGSQL_STD - PostgreSQL старых версий (до 7.х включительно) PSGSQL_ANSI - PostgreSQL ANSI (> 8.0) PSGSQL_UNICODE - PostgreSQL UNICODE (> 8.0) PSGSQL_SSL - PostgreSQL защищенное SSL соединение (> 8.0) ORACLE - ORACLE (кроме XE) 2. "DBQuery" - запрос данных из БД. Подключается через открытый объект "ODBC" Код: bool connect(QString name) // name имя подключения (зараннее открытого ODBC) 3. "ServiceController" - управляет другими сервисами на одной с ним машине Умеет: Код: //Фактически оболочка для QtServiceController из QtSolutions 4. "INI" - читает параметры из ini-файлов Умеет: Код: //Фактически оболочка для QSettings Ну вот как-то так. P.S. Ах, да, по порту 8080 показывает выполняемые задания. Вроде как зайчатки web-интерфейса ;D Название: Re: Сервис-планировщик с поддержкой QtScript Отправлено: Rem Norton от Сентябрь 10, 2011, 01:24 А, ну и пару примеров:
Код: //так, например, можно определить живой ли еще SQL и если нет - перезапустить а так можно прогнать скрипт на сервере, вычитанном из ini-файла Код: var set = new INI(); Да, скоро научу его в инет ходить за контентом, на FTP файлы ложить/забирать ну и просто на файловую систему ходить. Как закончу - выложу обновленный. Пожелания по функционалу приветствуются. |