Вход | Регистрация
 

Регламентные задания в файловой базе

Регламентные задания в файловой базе
Я
   Likons
 
19.02.21 - 16:04
День добрый !
Помогите советом пожалуйста )
Есть файловая база , есть регламентное задание которое под конкретным пользователем должно выполняться каждую секунду - две.
В общем то оно даже отрабатывает , но вот с таймером беда : вместо двух секунд , которые стоят в расписании , оно выполняется каждые 35-60 секунд , всегда по разному , как ему захочется )
Можно ли это как починить или в файловом варианте регламентные задания мертвы ?(
 
 Партнерская программа EFSOL Oblako
   Garykom
 
1 - 19.02.21 - 16:08
(0) Другие задания, общая очередь
   Likons
 
2 - 19.02.21 - 16:11
(1) всего одно задание есть (
собственно , не буду партизанить база представляет себя админку телеграмм бота досталась по наследству , автор неизвестен )
всего одно рег задание метод гетапдейт с апи телеги (
   Likons
 
3 - 19.02.21 - 16:12
легенда гласит , что раньше работало нормально. Но это не точно (
   Cthulhu
 
4 - 19.02.21 - 16:16
"есть файловая база"  это продакшн? коротый на клиент-сервер не будет переводиться?
если на оба вопроса ответ "да" - то отрубай нахрен регламентное, а на робо-юзера вешай запуск по обработке ожидания.
   Garykom
 
5 - 19.02.21 - 16:18
(3) Почитай про особенность регламентных/фоновых в файловых базах и подумай что поменялось
   dka80
 
6 - 19.02.21 - 16:18
Уже обсуждалось не раз: в файловом варианте точность запуска регламентных заданий не гарантируется
   Likons
 
7 - 19.02.21 - 16:19
(4) к сожалению , это продакшен , но перенос его на клиент - сервер не планируется ( у клиента все плохо с ресурсами на сервере. За обработчик ожидания - спасибо , ща попробую )
   hhhh
 
8 - 19.02.21 - 16:26
(7) ну сами понимаете, запускать регламентные задания раз в секунду - это дебилизм. Запускайте хотя бы раз в 5-10 минут.
   Serg_1960
 
9 - 19.02.21 - 16:32
(3) "легенда гласит" - что, серьёзно, запускалось каждую секунду-две? Легенды врут. Я, правда сказать, давно уже не пользуюсь, но когда этим баловался, то платформа регламентные задания обрабатывала один раз в минуту.
   ДенисЧ
 
10 - 19.02.21 - 16:33
"Легенда гласит" (тм), что в файловой базе раз в секунду ты регламенты не запустишь. Там вроде не меньше минуты
   Likons
 
11 - 19.02.21 - 16:33
решение нашлось )
Убрал рег задание и сделал через обработчик ожидания - заработало нормально ) 
ну , насколько это было возможно в текущих условиях )
спасибо за советы , (4) тебе отдельное спасибо )
   ДенисЧ
 
12 - 19.02.21 - 16:33
(6) Она нигде не гарантируется. Даже в Госстрахе.
   Serg_1960
 
13 - 19.02.21 - 16:44
(9) Упс, стоп, я соврал, память подвела. Это "по умолчанию" раз в минуту регламентные запускаются - константа конфигурации ИнтервалДляОпросаРегламентныхЗаданийВФайловомВарианте отвечает за частоту опроса. Чисто теоретически, в платформе интервал времени указывается в секундах с точностью до 1/10 секунды, но не гарантируется фактический интервал исполнения.
   valerivp
 
14 - 21.02.21 - 16:27
(2) не надо часто
см яндекс
телеграм лонгпулинг
   ДедМорроз
 
15 - 21.02.21 - 19:53
(13)там в зависимости от платформы разные способы запуска.
На старых платформах в сеансе пользователя работал обработчик ожидания,который выполнял проверку и запускал регламенты.
В новых платформах,фоновые задания запускаются в отдельном потоке,но нужно понимать,что если код запустил фоновое задание,то пока оно не завершится,то никакой регламент не запустится,а запуска фоновых заданий везде полно.
   valerivp
 
16 - 22.02.21 - 01:48
(2)
    СтруктураПараметров = Новый Структура;
    Если ЗначениеЗаполнено(ДанныеБота.Смещение) Тогда
        СтруктураПараметров.Вставить("offset", ДанныеБота.Смещение + 1);// Проверь этот параметр

    КонецЕсли;
    СтруктураПараметров.Вставить("timeout", 60);// Проверь этот параметр

    
    СтрокаJSON = ТелеграмAPI.ВыполнитьМетод(ДанныеБота, "getUpdates", СтруктураПараметров, Перечисления.ТелеграмСпособыЗапросов.Простой);
...

    // Инициализация ХТТП соединения

    Соединение = Новый HTTPСоединение("api.telegram.org",,,, , 60 /* Проверь этот параметр */, ЗащищенноеСоединение());
   Serg_1960
 
17 - 22.02.21 - 10:55
(15) Вы правы, но я бы хотел уточнить:

Каждое из перечисленных приложений выполняет собственные фоновые задания. Если приложение инициировало несколько фоновых заданий, то выполняются они последовательно, в порядке поступления.
   А регламентные задания выполняет только одно из запущенных приложений. Выполняет оно их после того, как выполнит собственные фоновые задания. При этом автоматическая обработка очереди регламентных заданий проводится раз в минуту.
   Чтобы платформа могла определить, какое из запущенных приложений будет исполнять регламентные задания, мы добавили новый параметр командной строки - AllowExecuteScheduledJobs. С помощью этого параметра также можно принудительно переназначить функцию исполнения регламентных заданий другому приложению.

[Реализовано в версии 8.3.3.641]

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.