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

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

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

32 ответов

54 просмотра

Лучше использовать 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
Datetime now кто даёт?

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

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

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

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

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

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта