Метеор увеличивает значения в БД каждую секунду - PullRequest
0 голосов
/ 28 июня 2018

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

Таким образом, Серверу необходимо проверить все данные фермы игроков и на основе этого, например, увеличить

production:0

поле каждую секунду, если у игрока есть ферма. Каков наилучший способ сделать это?

Должен ли я использовать Meteor.setTimeout()

1 Ответ

0 голосов
/ 28 июня 2018

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

Смежные вопросы:

Что происходит с Meteor и Fibers / bindEnvironment ()?

Обертывание метеором Async или bindEnvironment без стандартной подписи обратного вызова

Однако вы также можете использовать собственный JS setTimeout, но вам придется вручную привязать волокно к обратному вызову (если вы собираетесь использовать, например, Mongo), используя Meteor.bindEnvironment или Meteor .wrapAsync .

Еще одним интересным инструментом является Meteor.defer , который похож на Meteor.setTimeout(func, 0) и позволяет выполнять код в фоновом режиме. Остерегайтесь нескольких слоев обратных вызовов при смешивании с Meteor.setTimeout.

Еще одним инструментом при выполнении сложных служб в методе является this.unblock .

Применение этих инструментов соответствующим образом сделает возможным обновление по таймеру.

...