Просмотр полной версии : Как откладывать задачи в Node.js?
Whatsmyname
28.06.2016, 16:17
Как в Node.js реализовать отложенные задачи, будь то setTimeout или setInterval, для большого количества пользователей? Возможен какой-нибудь простой путь? И какой-нибудь очень стабильный- с использованием модулей events(eventemitter ), cluster, и process.nextTick? Что делать, если приложение ломается, падает, перезагружается? Нужно ставить крон таск, который шлет сигнал приложению , чтобы оно тянуло даты выполнения задач, поставленными пользователем, а nodejs устанавливает таймаут в нужный промежуток? Нужно ли использовать что-то вроде beanstalkd, rabbitmq, gearman ? Помогите, пожалуйста, может есть подробные статьи на эту тему, или в каких-то книжках ? Спасибо
Whatsmyname,
Посмотри в скринкасте (http://learn.javascript.ru/screencast/nodejs) выпуски 20, 21, 22
Whatsmyname
29.06.2016, 10:48
скринкаст, до дыр засмотрел, разве там именно это описывает?, то есть как чтобы пользователь выставил задачу на какое то время отсылка письма, уведомление, чтобы функция вызвалась в установленное время, и как это сохранить,...
скринкаст, до дыр засмотрел, разве там именно это описывает?, то есть как чтобы пользователь выставил задачу на какое то время отсылка письма, уведомление, чтобы функция вызвалась в установленное время, и как это сохранить,...
А такой модуль не подходит? https://github.com/node-schedule/node-schedule
Whatsmyname
29.06.2016, 14:09
А такой модуль не подходит? https://github.com/node-schedule/node-schedule
А если сервер приложения падает или перезагружается? Как сохранять в базу данных всё что необходимо, и что сохранять, чтобы было надёжно? Если пользователей много?
А если сервер приложения падает или перезагружается? Как сохранять в базу данных всё что необходимо, и что сохранять, чтобы было надёжно? Если пользователей много?
В модуль же передаются даты, по которым запускать задачи, а не интервал как в setTimeout. То есть в любом случае, после падения будет инициализация приложения заново.
vBulletin® v3.6.7, Copyright ©2000-2025, Jelsoft Enterprises Ltd. Перевод: zCarot