Meteor Cron Job в последний раз увеличивается - PullRequest
0 голосов
/ 02 июля 2018

Я занимаюсь разработкой простой браузерной игры для старых школ, в которой есть города и их производства.

Допустим, что для уровня 1 городская добыча камня равна 1 в минуту.

Для 5-го уровня производство камня в городе составляет 60 в минуту.

В настоящее время проблема в том, что у меня есть функция setInterval на сервере с интервалом 0, который циклически просматривает дБ, проверяет города и их производство и увеличивает (?) Их.

Так как мне правильно увеличивать? Поскольку во всех городах разная производительность в минуту, каков правильный подход? Нужно ли хранить время последнего приращения каждого города в дБ, затем проверить, прошло ли достаточно времени, а затем прирост?

Кроме того, поскольку я в режиме реального времени обновляю данные из базы данных в клиент, я хотел бы видеть увеличение 1 на 1, а не +60 после 1-минутного прохода.

Что я пробовал до сих пор:

function resourceUpdater(){ 
    Towns.find({}).forEach( town => { 
        if(town.spot1.buildingName =="factory" && town.spot1.level==1){ 
            Towns.update( {_id:town._id},{$inc:{"resources.stone":1}}) 
        } 
    }) 
}
...