Size: a a a

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

2021 January 11

N

Nikita in Node.js — русскоговорящее сообщество
Подскажите как правильно сделать выполнение определенных бизнес логик с задержкой.

setTimeout не подходит потому что не stateless, перезагрузка сервера сбросит его

нужно к примеру "через 1 час после принятия заказа отправить менеджеру уведомление если он еще не связался с клиентом"
источник

YI

Yaroslav Ivanov in Node.js — русскоговорящее сообщество
Nikita
Подскажите как правильно сделать выполнение определенных бизнес логик с задержкой.

setTimeout не подходит потому что не stateless, перезагрузка сервера сбросит его

нужно к примеру "через 1 час после принятия заказа отправить менеджеру уведомление если он еще не связался с клиентом"
cron на уровне системы
источник

N

Nikita in Node.js — русскоговорящее сообщество
крон это для повторяющехся событий, а мне нужно это сделать единожды
источник

N

Nikita in Node.js — русскоговорящее сообщество
Yaroslav Ivanov
cron на уровне системы
имеешь ввиду на уровне системы сделать задачу которая раз в минуту проверяет какие уведомления еще нужно отправить?
источник

B

Bat in Node.js — русскоговорящее сообщество
Nikita
Подскажите как правильно сделать выполнение определенных бизнес логик с задержкой.

setTimeout не подходит потому что не stateless, перезагрузка сервера сбросит его

нужно к примеру "через 1 час после принятия заказа отправить менеджеру уведомление если он еще не связался с клиентом"
очереди
источник

YI

Yaroslav Ivanov in Node.js — русскоговорящее сообщество
Nikita
имеешь ввиду на уровне системы сделать задачу которая раз в минуту проверяет какие уведомления еще нужно отправить?
Да
источник

N

Nikita in Node.js — русскоговорящее сообщество
неудобно, + таких логик у меня около 10, прийдется еще в базе хранить разные таймстампы чтобы знать где было отправлено уведомление а где нет
источник

N

Nikita in Node.js — русскоговорящее сообщество
Bat
очереди
можно пример более менее легковесной очереди?
источник

N

Nikita in Node.js — русскоговорящее сообщество
слышал про bulljs на редисе, это оно?
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
Nikita
Подскажите как правильно сделать выполнение определенных бизнес логик с задержкой.

setTimeout не подходит потому что не stateless, перезагрузка сервера сбросит его

нужно к примеру "через 1 час после принятия заказа отправить менеджеру уведомление если он еще не связался с клиентом"
сделай цикл бесконечный через setTimeout и проверяй по задержке в базе
источник

N

Nikita in Node.js — русскоговорящее сообщество
Kool Guy
сделай цикл бесконечный через setTimeout и проверяй по задержке в базе
костыль же, не?))
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
нет
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
буллжс еще больший костыль
источник

N

Nikita in Node.js — русскоговорящее сообщество
а если нужно с точностю до секунд, раз в секунду дергать и так нагруженную базу?
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
никому не нужно с точностью в секунду
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
а если нужно, setTimeout позволяет установить задержку с точностью в 4мс
источник

B

Bat in Node.js — русскоговорящее сообщество
Nikita
слышал про bulljs на редисе, это оно?
одно из, я вообще больше на пыхе пишу, но это от языка не зависит, на очередях такие штуки делаются
источник

YI

Yaroslav Ivanov in Node.js — русскоговорящее сообщество
Kool Guy
никому не нужно с точностью в секунду
А если там швейцар по ту сторону монитора?)
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
Yaroslav Ivanov
А если там швейцар по ту сторону монитора?)
если бы да кабы
источник

KG

Kool Guy in Node.js — русскоговорящее сообщество
условия не уточняли )
источник