z-nomp/libs/shareProcessor.js

45 lines
1.3 KiB
JavaScript
Raw Normal View History

var redis = require('redis');
module.exports = function(logger, poolConfig){
2014-03-03 12:51:11 -08:00
var redisConfig = poolConfig.shareProcessing.internal.redis;
var coin = poolConfig.coin.name;
2014-03-03 12:51:11 -08:00
var connection;
2014-03-04 12:24:02 -08:00
function connect(){
var reconnectTimeout;
var connection = redis.createClient(redisConfig.port, redisConfig.host);
connection.on('ready', function(){
clearTimeout(reconnectTimeout);
logger.debug('redis', 'Successfully connected to redis database');
});
connection.on('error', function(err){
logger.error('redis', 'Redis client had an error: ' + JSON.stringify(err))
});
connection.on('end', function(){
logger.error('redis', 'Connection to redis database as been ended');
logger.warning('redis', 'Trying reconnection in 3 seconds...');
reconnectTimeout = setTimeout(function(){
connect();
}, 3000);
2014-03-04 12:24:02 -08:00
});
}
connect();
2014-03-03 12:51:11 -08:00
this.handleShare = function(isValidShare, isValidBlock, shareData){
2014-03-04 12:24:02 -08:00
if (!isValidShare) return;
2014-03-03 12:51:11 -08:00
2014-03-04 12:24:02 -08:00
connection.hincrby([coin + ':' + shareData.height, shareData.worker, shareData.difficulty], function(error, result){
if (error)
logger.error('redis', 'Could not store worker share')
2014-03-04 12:24:02 -08:00
});
2014-03-03 12:51:11 -08:00
};
};