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

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

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

[Реализовано в версии 8.3.3.641]
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший