| 123456789101112131415161718192021222324252627 |
- settings = require('settings-sharelatex')
- SubscriptionBackgroundTasks = require("./app/js/Features/Subscription/SubscriptionBackgroundTasks")
- TpdsPollingBackgroundTasks = require("./app/js/Features/ThirdPartyDataStore/TpdsPollingBackgroundTasks")
- AutomaticSnapshotManager = require("./app/js/Features/Versioning/AutomaticSnapshotManager")
- time =
- oneHour : 60 * 60 * 1000
- fifteenMinutes : 15 * 60 * 1000
- thirtySeconds : 30 * 1000
- betweenThirtyAndFiveHundredSeconds: =>
- random = Math.floor(Math.random() * 500) * 1000
- if random < time.thirtySeconds
- return time.betweenThirtyAndFiveHundredSeconds()
- else
- return random
- runPeriodically = (funcToRun, periodLength)->
- recursiveReference = ->
- funcToRun ->
- setTimeout recursiveReference, periodLength
- setTimeout recursiveReference, 0
- # TODO: Remove this one month after the ability to start free trials was removed
- runPeriodically ((cb) -> SubscriptionBackgroundTasks.downgradeExpiredFreeTrials(cb)), time.oneHour
- runPeriodically ((cb) -> TpdsPollingBackgroundTasks.pollUsersWithDropbox(cb)), time.fifteenMinutes
- runPeriodically ((cb) -> AutomaticSnapshotManager.takeAutomaticSnapshots(cb)), time.thirtySeconds
|