| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- request = require "request"
- rclient = require("redis").createClient()
- async = require "async"
- {ObjectId} = require("./app/js/mongojs")
- NO_OF_DOCS = 100
- NO_OF_UPDATES = 200
- user_id = ObjectId().toString()
- updates = for i in [1..NO_OF_UPDATES]
- {
- op: { i: "a", p: 0 }
- v: i
- meta: ts: new Date(), user_id: user_id
- }
- jsonUpdates = (JSON.stringify(u) for u in updates)
- doc_ids = (ObjectId().toString() for i in [1..NO_OF_DOCS])
- populateRedis = (callback = (error) ->) ->
- console.log "Populating Redis queues..."
- jobs = []
- for doc_id in doc_ids
- do (doc_id) ->
- jobs.push (callback) ->
- rclient.rpush "UncompressedHistoryOps:#{doc_id}", jsonUpdates..., callback
- async.series jobs, (error) ->
- return callback(error) if error?
- console.log "Done."
- callback()
- flushDocs = (callback = (error) ->) ->
- console.log "Flushing docs..."
- inProgress = 0
- jobs = []
- for doc_id in doc_ids
- do (doc_id) ->
- jobs.push (callback) ->
- inProgress = inProgress + 1
- request.post "http://localhost:3014/doc/#{doc_id}/flush", (error) ->
- inProgress = inProgress - 1
- console.log Date.now(), "In progress: #{inProgress}"
- callback(error)
- async.parallel jobs, (error) ->
- return callback(error) if error?
- console.log "Done."
- callback()
- populateRedis (error) ->
- throw error if error?
- flushDocs (error) ->
- throw error if error?
- process.exit(0)
|