|
Регламентные задания в файловой базе | ☑ | ||
---|---|---|---|---|
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] |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |