Size: a a a

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

2021 March 01

s

svasta☦️ in Node.js — русскоговорящее сообщество
это я понимаю. Но это в find
источник

N

Nikita in Node.js — русскоговорящее сообщество
кстати о планировщиках, если я делаю собственный планировщик для динамических задач (т.е. пришел заказ - запланировать отправку уведомления через 15 минут конкретно по этому заказу, в бд храню таски, дополнительные данные(payload) и их даты, раз в минуту проверяю есть ли задачи которые нужно выполнить). Так вот, как такую штуку масштабировать если несколько инстансов приложения будет? типа чтобы один таск дважды не выполнился
источник

s

svasta☦️ in Node.js — русскоговорящее сообщество
а мне ж надо в найденные добавить поле archivedAt
источник

YZ

Yaroslav Zhymkov in Node.js — русскоговорящее сообщество
svasta☦️
а мне ж надо в найденные добавить поле archivedAt
В монге есть, надо доку смотреть
источник

N

Nikita in Node.js — русскоговорящее сообщество
svasta☦️
а мне ж надо в найденные добавить поле archivedAt
updateMany({accidentEndDate: {
     $lt: todayDate
   }}, {$set: {archivedAt: new Date()}})
источник

YZ

Yaroslav Zhymkov in Node.js — русскоговорящее сообщество
Nikita
кстати о планировщиках, если я делаю собственный планировщик для динамических задач (т.е. пришел заказ - запланировать отправку уведомления через 15 минут конкретно по этому заказу, в бд храню таски, дополнительные данные(payload) и их даты, раз в минуту проверяю есть ли задачи которые нужно выполнить). Так вот, как такую штуку масштабировать если несколько инстансов приложения будет? типа чтобы один таск дважды не выполнился
Добавлять систему лока, я делал
источник

N

Nikita in Node.js — русскоговорящее сообщество
Nikita
updateMany({accidentEndDate: {
     $lt: todayDate
   }}, {$set: {archivedAt: new Date()}})
только тогда добавь условие и на archivedAt: {$exists: false}
источник

AZ

A Z in Node.js — русскоговорящее сообщество
Nikita
кстати о планировщиках, если я делаю собственный планировщик для динамических задач (т.е. пришел заказ - запланировать отправку уведомления через 15 минут конкретно по этому заказу, в бд храню таски, дополнительные данные(payload) и их даты, раз в минуту проверяю есть ли задачи которые нужно выполнить). Так вот, как такую штуку масштабировать если несколько инстансов приложения будет? типа чтобы один таск дважды не выполнился
Попробуй bulljs
источник

AS

Artem Soroka in Node.js — русскоговорящее сообщество
svasta☦️
а мне ж надо в найденные добавить поле archivedAt
updateMany принимает два аргумента
query и document

db.collection.updateMany( {}, [{ "$set": { "dateField": { "$toDate": "$dateField" } }] );
источник

s

svasta☦️ in Node.js — русскоговорящее сообщество
Nikita
updateMany({accidentEndDate: {
     $lt: todayDate
   }}, {$set: {archivedAt: new Date()}})
в монгус такое вроде не канает
источник

N

Nikita in Node.js — русскоговорящее сообщество
svasta☦️
в монгус такое вроде не канает
канает, сам так делаю
источник

s

svasta☦️ in Node.js — русскоговорящее сообщество
model.updateMany?
источник

YZ

Yaroslav Zhymkov in Node.js — русскоговорящее сообщество
Yaroslav Zhymkov
Добавлять систему лока, я делал
Крон же по сути дергает какую-то функцию, в ее начале проверяете нет ли лока и ставите лок.
источник

N

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

AS

Artem Soroka in Node.js — русскоговорящее сообщество
Nikita
кстати о планировщиках, если я делаю собственный планировщик для динамических задач (т.е. пришел заказ - запланировать отправку уведомления через 15 минут конкретно по этому заказу, в бд храню таски, дополнительные данные(payload) и их даты, раз в минуту проверяю есть ли задачи которые нужно выполнить). Так вот, как такую штуку масштабировать если несколько инстансов приложения будет? типа чтобы один таск дважды не выполнился
Это самое сложное )) выполнить хотя бы раз или точно один раз
Многие очереди такой гарантии не дают
источник

s

svasta☦️ in Node.js — русскоговорящее сообщество
Yaroslav Zhymkov
Крон же по сути дергает какую-то функцию, в ее начале проверяете нет ли лока и ставите лок.
та это я уже понял. Теперь саму функцию думаю как написать
источник

YZ

Yaroslav Zhymkov in Node.js — русскоговорящее сообщество
svasta☦️
та это я уже понял. Теперь саму функцию думаю как написать
Это вопросу выше, про псевдопаралельность
источник

N

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

та наверное лок подойдет как решение
источник

N

Nikita in Node.js — русскоговорящее сообщество
правда как этот лок сделать, наверное тупо в тот же редис 1/0 записывать
источник

s

svasta☦️ in Node.js — русскоговорящее сообщество
Yaroslav Zhymkov
Это вопросу выше, про псевдопаралельность
не понял
источник