Meteorメソッドのデータを絶え間なく実行することなく、合理的に新鮮なデータを作成する最も効率的な方法は何ですか?Meteorメソッドを頻繁に実行するのに最適な方法はありますか?
私は正しい値のセットを返すために3-4個のコレクションをチェックする必要があるサーバー側のメテオメソッドを持っています。
私たちはこの方法をアプリケーションのいくつかの場所で使いますが、頻繁に実行するのは本当に高価です。ここで
は方法です:
getContactLimit() {
let currentOrg = Meteor.user() && Meteor.user().profile && Meteor.user().profile.currentOrg,
orgData = Orgs.findOne({ 'domain': currentOrg }),
orgStatus = orgData && orgData.status,
orgPlan = orgData && orgData.billing && orgData.billing.plan,
allPlans = Meteor.settings.public.plans,
thisPlan = _.find(allPlans, function(plan){ return plan.name == orgPlan; }),
planContacts = thisPlan && thisPlan.contacts,
contactCount = Contacts.find({ 'orgId': currentOrg }).count(),
countObj = {
planCount: planContacts,
orgCount: contactCount
};
return countObj;
}
は現在、我々はちょうどオンデマンドそれを呼び出すと、それは問題ではなかったです。しかし、アプリ全体の通知を表示するために追加しようとしています。
私が調べた1つの方法は、Meteor.setInterval();
関数でラップされたメソッドを呼び出して、セッション変数を更新することです。ここで
は、私はそれを呼び出すことを考えています方法は次のとおりです。
Meteor.setInterval(function() {
Meteor.call('getContactLimit', function(error, response) {
Session.set('contactLimit', response);
});
}, 60000);
別の可能性は、特定のアクションでそれを埋め込むされているので、それだけで具体的な活動で実行しますが、それはハック感じています。
アイデア?これを達成するより良い方法はありますか?
ありがとうございます!
これに類似した雑用のために[synced-cron](https://github.com/percolatestudio/meteor-synced-cron)ライブラリを使用しています。うまくいけば助けになるかもしれません。 –