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

Привет - подскажите на сколько надежен setInterval ? Можно ли

его использовать как планировщик задач - например с интервалом в секунду?
Например чтобы менять статусы у объектов которые истекли по времени.

15 ответов

24 просмотра

Это зависит от множества факторов, какая посещаемость, какая серверная архитектура, какое масштабирование и т.д., для очень высоконагруженных проектов node js не подходит, только отчасти, где нужна скорость, там нужно смотреть в сторону СИ.

Виктор-Чернов Автор вопроса
Sergey
Это зависит от множества факторов, какая посещаемо...

Да - я понимаю. Вопрос больше про надежность самого метода setInterval. Не отвалится ли в какой-то момент? Может ли долго работать без перерыва? Или лучше какой-нить внешний крон?

Виктор Чернов
Почему?

Потому что опыт показывает, что js на бэке пока не идеален

Sergey
Потому что опыт показывает, что js на бэке пока не...

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

Виктор-Чернов Автор вопроса
John Doe
что значит не отвалится?

В какой-то момент перестанет работать или например забьет память всю

Виктор Чернов
В какой-то момент перестанет работать или например...

А есть объяснение почему он должен перестать работать в какой-то момент или забить память?

Виктор-Чернов Автор вопроса

Нету, только слышал что такое возможно. Я как раз хотел узнать про такое объяснение если оно есть

Виктор Чернов
Нету, только слышал что такое возможно. Я как раз ...

У setInterval есть определенно два минуса 1. Неточность. Гарантированно, что колбек исполнится не раньше установленного времени. Но насколько "позже" по большей части зависит от загруженности ивентлупа и в процессора(от этого и внешний cron зависит) 2. Немаштабируемость. Если ты решишь запустить несколько процессов своего приложения, то у каждого инстанса будет так же запускаться setInterval А про "может перестать работать" или "забьёт память" это какое-то непонимание работы нода. В теории "забить память" можно через регистрацию кучи колбеков через setInterval, но вряд ли ты собираешься одновременно регистрировать миллионы колбеков

но это разве утечка будет а не голодание цикла?

Lёsha
но это разве утечка будет а не голодание цикла?

Стек это заранее выделенная память, занимает где-то один мегабайт в V8. Если в стеке соберётся примитивов больше чем на этот 1 мб, то будет переполнение. Из-за (...arr) мы кладём все примитива массива в стек

John Doe
Стек это заранее выделенная память, занимает где-т...

я думал что все примитивы в куче и стек имеет ограниченную память которой достаточно лишь для 16000 вызовов или сколько там, и никакая статика туда не попадает

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта