2015-06-23 35 views
0

我遇到了一個問題,在我將mongo集上傳到流星服務器後,其行爲會有所不同。當地一切正常,我在運行流星日誌時也看不到任何問題。當上傳到實時環境時,流星匯的行爲會有所不同

我想要做的是這樣的:

在我的收藏叫RaceList我有幾個條目的。每個人都有一個唯一的id,一個用戶數組和一個布爾型的「live」變量。 我每小時更新一次這個系列,通過移除現場比賽,將下一場比賽的實時變量設置爲true,並在比賽結束時添加另一場比賽。

所有這一切都爲我在本地工作,但上傳到我的流星服務器後發生了一些奇怪的事情。如果我在下一場比賽中沒有人和任何人蔘加轉場,似乎可以正常工作,但是一旦我加入比賽,出於某種原因,剛加入比賽後的比賽將會變成直播比賽,我加入了被跳過的比賽...

這是從我的服務器時執行每小時代碼:

updateRaces: -> 

    # Remove the finished race 
    Meteor.call 'removeLiveRace' 

    # Set the next race to live 
    Meteor.call 'updateLiveRace' 

    # Add another race to the collection 
    Meteor.call 'insertNewRace' 

,這裏是從我的Meteor.methods代碼

removeLiveRace: -> 

    id = RaceList.findOne({ live: true })?._id 

    if id 

     RaceList.remove _id: id 


updateLiveRace: -> 

    id = _.first(RaceList.find().fetch())._id 

    RaceList.update id, $set: live: true 


insertNewRace: -> 

    RaceList.insert 
     live : false 
     users : [] 

任何幫助,非常感謝。我還是剛剛開始使用流星,所以任何建議,以使此代碼更有效率/安全將是偉大的!

感謝:)

回答

2

雖然它看起來並不像你使用cron,標準的警告信息仍然適用於你:

注意事項

當心,SyncedCron可能將無法按預期在某些共享 託管服務提供商關閉應用程序實例,當他們不是 接收請求(如Heroku的免費定向層或流星免費 星系)。

換句話說,因爲您使用的是免費服務,任何關機時刻都會與任何Cron /時間函數混淆。

+0

感謝您的幫助@ilrein:) – Ashmore11

0

想通了。這是因爲我的收藏集正在向收藏集的底部發送一個條目,當我向其中添加了1個以上的用戶時。我不知道爲什麼會發生這種情況?我只是將集合設置爲通過createdAt進行排序,無論我在哪裏查詢它並解決了問題。

相關問題