Skip to content

Instantly share code, notes, and snippets.

@enjalot
Last active August 29, 2015 14:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save enjalot/66b109048acd36db0b7c to your computer and use it in GitHub Desktop.
Save enjalot/66b109048acd36db0b7c to your computer and use it in GitHub Desktop.
node_modules
NUM = 1000
LIMIT = 50
async = require 'async'
livedb = require 'livedb'
liveDbMongo = require 'livedb-mongo'
racer = require 'racer'
racerLogger = require('racer-logger')
redis = require('redis')
db = liveDbMongo('mongodb://localhost:27017/racer-test?auto_reconnect', {safe: true})
redisClient = redis.createClient();
redisObserver = redis.createClient();
driver = livedb.redisDriver(db, redisClient, redisObserver);
backend = livedb.client({snapshotDb: db, driver: driver});
store = racer.createStore({backend: backend});
racerLogger(store)
model = store.createModel()
model.shareConnection.debug = true
query = model.query "someCollection", {}
model.subscribe query, ->
i = 0
model.add "someCollection", {foo: "bar", i, random: Math.random()}, ->
console.log "added first"
async.eachLimit [0...NUM], LIMIT, (i, iCb) ->
console.log "adding #{i}"
model.add "someCollection", {foo: "bar", i}, iCb
, (err) ->
console.log "done adding"
model.whenNothingPending ->
console.log "all done"
process.exit()
{
"name": "nocb",
"version": "0.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"author": "",
"license": "ISC",
"dependencies": {
"async": "^0.9.0",
"livedb-mongo": "^0.4.1",
"racer": "^0.6.0-alpha32",
"redis": "^0.12.1",
"livedb": "^0.5.9",
"racer-logger": "^0.1.3"
}
}
livedb = require 'livedb'
liveDbMongo = require 'livedb-mongo'
racer = require('racer')
#racer.use require 'racer-logger'
racerLogger = require('racer-logger')
redis = require('redis')
db = liveDbMongo('mongodb://localhost:27017/racer-test?auto_reconnect', {safe: true})
redisClient = redis.createClient();
redisObserver = redis.createClient();
driver = livedb.redisDriver(db, redisClient, redisObserver);
backend = livedb.client({snapshotDb: db, driver: driver});
store = racer.createStore({backend: backend});
racerLogger(store)
model = store.createModel()
q = model.query "someCollection", {}
q.subscribe ->
q.ref "_page.some"
console.log "subscribed", q.get().length
model.on "insert", "_page.some", (index, inserted) ->
x = 0
time = +new Date()
console.log "got", index
setTimeout ->
if !x
console.log "\n\n ------- "
console.log "STUCK", index, inserted[0].id
console.log "------- \n\n"
setTimeout ->
console.log "STUCK", index, inserted[0].id
process.exit()
, 5000
, 5000
model.set "someCollection.#{inserted[0].id}.gotit", true, ->
#console.log "got it cb", index
x = 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment