Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Как откладывать задачи в Node.js? (https://javascript.ru/forum/node-js-io-js/63775-kak-otkladyvat-zadachi-v-node-js.html)

Whatsmyname 28.06.2016 16:17

Как откладывать задачи в Node.js?
 
Как в Node.js реализовать отложенные задачи, будь то setTimeout или setInterval, для большого количества пользователей? Возможен какой-нибудь простой путь? И какой-нибудь очень стабильный- с использованием модулей events(eventemitter ), cluster, и process.nextTick? Что делать, если приложение ломается, падает, перезагружается? Нужно ставить крон таск, который шлет сигнал приложению , чтобы оно тянуло даты выполнения задач, поставленными пользователем, а nodejs устанавливает таймаут в нужный промежуток? Нужно ли использовать что-то вроде beanstalkd, rabbitmq, gearman ? Помогите, пожалуйста, может есть подробные статьи на эту тему, или в каких-то книжках ? Спасибо

destus 29.06.2016 09:52

Whatsmyname,
Посмотри в скринкасте выпуски 20, 21, 22

Whatsmyname 29.06.2016 10:48

скринкаст, до дыр засмотрел, разве там именно это описывает?, то есть как чтобы пользователь выставил задачу на какое то время отсылка письма, уведомление, чтобы функция вызвалась в установленное время, и как это сохранить,...

destus 29.06.2016 11:39

Цитата:

Сообщение от Whatsmyname (Сообщение 420742)
скринкаст, до дыр засмотрел, разве там именно это описывает?, то есть как чтобы пользователь выставил задачу на какое то время отсылка письма, уведомление, чтобы функция вызвалась в установленное время, и как это сохранить,...

А такой модуль не подходит? https://github.com/node-schedule/node-schedule

Whatsmyname 29.06.2016 14:09

Цитата:

Сообщение от destus (Сообщение 420745)
А такой модуль не подходит? https://github.com/node-schedule/node-schedule

А если сервер приложения падает или перезагружается? Как сохранять в базу данных всё что необходимо, и что сохранять, чтобы было надёжно? Если пользователей много?

destus 29.06.2016 14:40

Цитата:

Сообщение от Whatsmyname (Сообщение 420757)
А если сервер приложения падает или перезагружается? Как сохранять в базу данных всё что необходимо, и что сохранять, чтобы было надёжно? Если пользователей много?

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


Часовой пояс GMT +3, время: 18:29.