pub.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. 'use strict';
  2. var freemem = require('os').freemem;
  3. //var profiler = require('v8-profiler');
  4. var codec = require('../codec');
  5. var sent = 0;
  6. var pub = require('redis').createClient(null, null, {
  7. //command_queue_high_water: 5,
  8. //command_queue_low_water: 1
  9. })
  10. .on('ready', function() {
  11. this.del('timeline');
  12. this.emit('drain');
  13. })
  14. .on('drain', function() {
  15. process.nextTick(exec);
  16. });
  17. var payload = '1'; for (var i = 0; i < 12; ++i) payload += payload;
  18. console.log('Message payload length', payload.length);
  19. function exec() {
  20. pub.rpush('timeline', codec.encode({ foo: payload }));
  21. ++sent;
  22. if (!pub.should_buffer) {
  23. process.nextTick(exec);
  24. }
  25. }
  26. //profiler.takeSnapshot('s_0');
  27. exec();
  28. setInterval(function() {
  29. //var ss = profiler.takeSnapshot('s_' + sent);
  30. //console.error(ss.stringify());
  31. pub.llen('timeline', function(err, result) {
  32. console.error('sent', sent, 'free', freemem(),
  33. 'cmdqlen', pub.command_queue.length, 'offqlen', pub.offline_queue.length,
  34. 'llen', result
  35. );
  36. });
  37. }, 2000);
  38. /*setTimeout(function() {
  39. process.exit();
  40. }, 30000);*/