169 похожих чатов

==================== На сколько точен Timer.periodic? Если на двух разных серверах запущенны одномоментно

с периодичностью 15сек то со временем не будут совпадать?
====================

32 ответов

10 просмотров

Лучше использовать DateTime.now(), если ты хочешь точное время. И то это будет зависеть от времени на устройстве. timer будет работать относительно загружености системы

HhHhH- Автор вопроса

Нужно чтобы на двух разных серверах что-то выполнялось бесконечно в один и тот же момент с одинаковой периодичностью. Не знаю как реализовать это гарантировано

HhHhH
Нужно чтобы на двух разных серверах что-то выполня...

https://stackoverflow.com/questions/64026825/how-to-get-network-datetime-now

HhHhH
Нужно чтобы на двух разных серверах что-то выполня...

Абсолютно гарантированно – никак. Весь вопрос в том, какая степень точности вас устроит.

HhHhH- Автор вопроса
HhHhH
1сек

Синхронизируете время на каждом из серверов и запускаете

HhHhH
1сек

я не знаю, что у вас за задача, но возможно вы не с той стороны подходите к вопросу. Одновременно и периодически что-то делать на распределенной системе – это звучит как одно из решений какой-то проблемы, но не факт, что самое лучшее.

HhHhH- Автор вопроса
Юрий
Синхронизируете время на каждом из серверов и запу...

Какой-то сервер может задержаться и пропустить момент...похоже с делением и остатками времени надо вычисления следующего момента делать

Kirill Bubochkin
я не знаю, что у вас за задача, но возможно вы не ...

Та не, возможно, делал так, но пришлось перейти на servertimestamp чтоб не зависить от клиентской части - была большая морока с синхронизацией клиентов при проблеме задержки интернета при заявке - ответе и куча костылей

Kirill Bubochkin
я не знаю, что у вас за задача, но возможно вы не ...

В контексте распределенных систем это вобше не решение, это ошибка. @YK1000YK скажите изначальную проблему, очень похоже на типичную XY

HhHhH- Автор вопроса
HhHhH
Какой-то сервер может задержаться и пропустить мом...

Типа был timstamp_start Теперь есть timstamp_now (timstamp_now-timestamp_start )*1000/15сек определяем сколько было раз уже По остатку делаем ожидание Await Future.delay(ост милисек)

HhHhH
Типа был timstamp_start Теперь есть timstamp_now ...

А вычисление периуда когда будет происходить, после выполнения? Как избежать накопления ошибки из за времени выполнения DateTime.now()?

HhHhH- Автор вопроса
Юрий
И в чем проблема?

Ну вот начал проговаривать проблему и сам понял решение Не выговорился то не решился бы вопрос ещё какое-то время

HhHhH- Автор вопроса
Royal Cat
А вычисление периуда когда будет происходить, посл...

Когда выполнился предыдущий раз определяется сколько детей и ставиться на ожидание

HhHhH
Ну вот начал проговаривать проблему и сам понял ре...

Datetime now должно быть только у клиента и пох что у хитрожопого дата на 2 года назад - при заявке от него идет очередной server timestamp для валидации

Т.е. если таска будет выполняться больше чем промежуток то все сломается. Тогда вобше лучше используете periodic там реализация точнее чем эта реализация

HhHhH- Автор вопроса
Royal Cat
Т.е. если таска будет выполняться больше чем проме...

Если выполняться будет дольше чем 15сек а 19 сек то просто пропускаться будут иногда эти точки выполнения. Например через раз выполняться будет иногда

HhHhH- Автор вопроса
Royal Cat
Т.е. если таска будет выполняться больше чем проме...

Вроде по моем исполнении периодичность никогда не собьеться, Тесть абсолютно всегда в ХХ:15 ХХ:30 ХХ:45 ХХ:00 На четвертях секундного циферблата

HhHhH
Если выполняться будет дольше чем 15сек а 19 сек т...

Т.е. точность уже не важна, тогда нормально будет почти что угодно. Вобше рекомендую все таки вернуться к изанчальной проблеме и найти другое решение, т.к. полагатся на синхронизацию времени между разными устройствами рассчитывать не стоит

HhHhH- Автор вопроса
Royal Cat
Т.е. точность уже не важна, тогда нормально будет ...

Точность в тысячных долях секунды уже от ресурсов каждого сервера зависит. Тут никак точнее не сделать

HhHhH
Вроде по моем исполнении периодичность никогда не ...

Прекрасно, крон и фильтр приходящих заявок, только вот проблема - из-за сети человек может и выслал заявку за пол секунды до конца, но она пришла после этого

HhHhH- Автор вопроса
Royal Cat
Т.е. точность уже не важна, тогда нормально будет ...

Они каждый раз datetime now получают и опираясь на это всё точно получиться. Ошибка не накопиться

HhHhH
Они каждый раз datetime now получают и опираясь на...

DateTime.now() - источник накопления ошибки, если его убрать может что то и нормальное будет, но там есть другой подвох который я забыл

HhHhH- Автор вопроса
Юрий
Прекрасно, крон и фильтр приходящих заявок, только...

Если чел отправил заявку в 14,9сек А пришла в 15,1сек То по результатам работы в 15,0 он получит ответ

HhHhH- Автор вопроса
HhHhH
Какой подвох

Может быть каким угодно

HhHhH- Автор вопроса
HhHhH
Datetime now кто даёт?

Клиентское устройство

HhHhH- Автор вопроса
Юрий
Клиентское устройство

Где источник надёжного текущего времени?

HhHhH
Какой подвох

честно, не помню) в любом случае - если вам надо что то выполнять иногда - в Timer.pereodic решены все проблемы. А выполнять что то одновременно на нескольких серверах - принцпиально не возможно, банально из за задержек сети и еще множества причин

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
Hey someone plz help to resolve my issue here is my table... Log { id user_id type target_ct target_obj_id action_ct action_obj_id workspace_id created_at } i wanna fil...
Rahul Singh
1
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта