Dmitriy Posted May 26, 2023 Share Posted May 26, 2023 Всем добрый день! Есть проблемка - не могу понять как правильно организовать вызов процедуры строго по времени (в 8:01 и 20:01). Сделал по старинке: procedure TReport_proizvodstvo.UniTimer1Timer(Sender: TObject); begin if (timetostr(now) = '08:01:00') then Get_data_new(now); if (timetostr(now) = '20:01:00') then Get_data_new(now); end; Но опять же - это же должна быть открыта сессия в браузере, проблема в том, что иногда она срабатывает - иногда нет. Пробовал добавлять второй таймер чтобы пинал сессию Но результат такой же. Как вообще в принципе, правильно организовать вызов какой то процедуры, и чтобы она не зависела от сессии - а только от запущенного сервера. В процедуре происходят всякие выборки из удаленной базы данных FiREBird, кладутся в MS SQL и отправляются кое какие данные в телеграмм бот и в эксель в папку определенную. Заранее благодарю. Quote Link to comment Share on other sites More sharing options...
Sherzod Posted May 26, 2023 Share Posted May 26, 2023 Добрый день, Используйте TUniThreadTimer Quote Link to comment Share on other sites More sharing options...
Dmitriy Posted May 26, 2023 Author Share Posted May 26, 2023 его использовать в Unimainmodule правильно? Quote Link to comment Share on other sites More sharing options...
Sherzod Posted May 26, 2023 Share Posted May 26, 2023 В Вашем случае, UniServerModule. Quote Link to comment Share on other sites More sharing options...
Dmitriy Posted May 27, 2023 Author Share Posted May 27, 2023 Все равно не работает. public { Public declarations } property ConnString : string read FConnString; Procedure Get_data_new(tm:tdatetime); Procedure TUniServerModule.Get_data_new(tm:tdatetime) ; begin // код end;; procedure TUniServerModule.UniThreadTimer1Timer(Sender: TObject); begin if (timetostr(now) = '08:38:00') then Get_data_new(now); if (timetostr(now) = '20:01:00') then Get_data_new(now); end; Все нужные компоненты на этом же модуле, но события по времени на длинную дистанцию все равно не работают (( Quote Link to comment Share on other sites More sharing options...
Dmitriy Posted May 27, 2023 Author Share Posted May 27, 2023 Хотя если ставлю точку останова на if (timetostr(now) = '09:05:00') then то она срабатывает, возможно время не удается уловить точное до секунды, не понимаю в общем ) Quote Link to comment Share on other sites More sharing options...
Sherzod Posted May 27, 2023 Share Posted May 27, 2023 Тогда, попробуйте на данный момент, указать диапазон в несколько секунд... Quote Link to comment Share on other sites More sharing options...
Dmitriy Posted May 27, 2023 Author Share Posted May 27, 2023 Спасибо - помогло. 👐 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.