Size: a a a

Node.js — русскоговорящее сообщество

2020 December 11

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Pure
Киньте чат по js. Или кто то быстро ответит ?
У нас есть setTimout(consle.log(“hi”), 1000)
Как сделать что бы он выполнился через 10000 не меняя значение аргумента ?
усё работает

const oldSetTimeout = setTimeout;

setTimeout = function(fn, time) {
 if (time === 1000) time = 10000;
 oldSetTimeout(fn, time);
}

setTimeout(() => console.log('hi'), 1000)
источник

V

Van Der Graaf Genera... in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
setTimeout вообще не даёт никаких гарантий, что он сработает "скоро". Только что он сработает "не раньше, чем"
А если нужна точность, то крон юзать?
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Van Der Graaf Generator
А если нужна точность, то крон юзать?
В общем-то ничего не поможет, если надо ворваться в поток. А если для независимой задачи, то достаточно делать это в отдельном потоке
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
усё работает

const oldSetTimeout = setTimeout;

setTimeout = function(fn, time) {
 if (time === 1000) time = 10000;
 oldSetTimeout(fn, time);
}

setTimeout(() => console.log('hi'), 1000)
А ты жесток
источник

V

Van Der Graaf Genera... in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
В общем-то ничего не поможет, если надо ворваться в поток. А если для независимой задачи, то достаточно делать это в отдельном потоке
То есть запустить где-то там еще один процесс ноды, только для этой задачи, и чтобы крон дергал его?
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
так может заменить реализацию setTimeout
+
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Van Der Graaf Generator
То есть запустить где-то там еще один процесс ноды, только для этой задачи, и чтобы крон дергал его?
А что именно вы хотите? Зачем нужна супер точность?
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
В нормальной ситуации не должно быть такого, что setTimeout запускается сильно позже.
Это значит уже поток заблокирован, и уже что-то плохо
источник

S🛸

Sergey 🛸 in Node.js — русскоговорящее сообщество
Van Der Graaf Generator
То есть запустить где-то там еще один процесс ноды, только для этой задачи, и чтобы крон дергал его?
Для супер точности нужно переписать на язык без GC и запускать программу на real time операционной системе
источник

V

Van Der Graaf Genera... in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
А что именно вы хотите? Зачем нужна супер точность?
Нужна точность до часа. Раз в 72 часа отправлять письмо
источник

V

Van Der Graaf Genera... in Node.js — русскоговорящее сообщество
И раз в час лезть в бд, делать простой селект
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Van Der Graaf Generator
Нужна точность до часа. Раз в 72 часа отправлять письмо
С такой точностью можно вообще не париться
источник

L

Leo in Node.js — русскоговорящее сообщество
Привет, всем. У меня такая трабла, скрипт на винде пускает, ставлю на линукс, а он please provide following environment variable
файл .env так же лежит в корне

в чем может быть проблема?
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
С такой точностью можно вообще не париться
Только если рассылка - большая, лучше её всё-таки не этим же потоком делать
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
усё работает

const oldSetTimeout = setTimeout;

setTimeout = function(fn, time) {
 if (time === 1000) time = 10000;
 oldSetTimeout(fn, time);
}

setTimeout(() => console.log('hi'), 1000)
интересно, а вот в каком-нибудь smalltalk, можно ли заменить реализацию 1000?
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
там же тоже всё -- объект, включая числа
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Van Der Graaf Generator
Нужна точность до часа. Раз в 72 часа отправлять письмо
но если на setTimeout делать, то как-то учитывать перезапуск приложения
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
интересно, а вот в каком-нибудь smalltalk, можно ли заменить реализацию 1000?
smalltalk - это ты про язык доисторический?
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Grigorii K. Shartsev
smalltalk - это ты про язык доисторический?
да
источник

GS

Grigorii K. Shartsev in Node.js — русскоговорящее сообщество
Pavel Shakhov (pongo)
но если на setTimeout делать, то как-то учитывать перезапуск приложения
По хорошему такие вещи вообще не в основном процессе делать, а отдельным планировщиком задач
источник