Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*jslint node: true, plusplus: true*/
- 'use strict';
- var mysql = require('mysql'),
- db = mysql.createConnection({
- host: 'localhost',
- user: 'root',
- password: 'root'
- }),
- RAND_MAX = 999999;
- db.connect();
- function get_random_id() {
- return Math.floor(Math.random() * RAND_MAX) + 1;
- }
- function do_logout(cb) {
- function done(err, rows, fields) {
- if (err) {
- throw err;
- }
- cb();
- do_logout(cb);
- }
- var time = Math.floor(+new Date() / 1000) - 30,
- id = get_random_id();
- db.query('UPDATE active_users SET active_time = FROM_UNIXTIME(' + time + ') WHERE user_id = ' + id, done);
- }
- function do_usercount(cb) {
- function done(err, rows, fields) {
- if (err) {
- throw err;
- }
- cb(rows[0].cnt);
- }
- var time = Math.floor(+new Date() / 1000) - 30;
- db.query('SELECT COUNT(*) AS cnt FROM active_users WHERE UNIX_TIMESTAMP(active_time) >= ' + time, done);
- }
- function do_login(cb) {
- function done(err, rows, fields) {
- if (err) {
- throw err;
- }
- cb();
- do_login(cb);
- }
- var time = Math.floor(+new Date() / 1000),
- id = get_random_id();
- db.query('UPDATE active_users SET active_time = FROM_UNIXTIME(' + time + ') WHERE user_id = ' + id, done);
- }
- function run_benchmark() {
- var start = new Date(), i = 400,
- logout, login, done = 0, last = 0,
- active_user_count = 0;
- function cb() {
- done++;
- }
- setInterval(function () {
- console.log('Throughput: ' + (done - last) + ' r/s, currently active: ' + active_user_count);
- last = done;
- }, 1000);
- do_logout(cb);
- do_login(cb);
- function update_user_count(cb) {
- do_usercount(function (num) {
- active_user_count = num;
- });
- if (cb) {
- cb();
- }
- }
- update_user_count(function () {
- setInterval(update_user_count, 5000);
- });
- }
- db.query('USE ragezone_test', run_benchmark);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement