pub.js 868 B

1234567891011121314151617181920212223242526272829303132333435363738
  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.emit('drain');
  12. })
  13. .on('drain', function() {
  14. process.nextTick(exec);
  15. });
  16. var payload = '1'; for (var i = 0; i < 12; ++i) payload += payload;
  17. console.log('Message payload length', payload.length);
  18. function exec() {
  19. pub.publish('timeline', codec.encode({ foo: payload }));
  20. ++sent;
  21. if (!pub.should_buffer) {
  22. process.nextTick(exec);
  23. }
  24. }
  25. profiler.takeSnapshot('s_0');
  26. exec();
  27. setInterval(function() {
  28. profiler.takeSnapshot('s_' + sent);
  29. console.error('sent', sent, 'free', freemem(), 'cmdqlen', pub.command_queue.length, 'offqlen', pub.offline_queue.length);
  30. }, 2000);