mirror of https://github.com/BTCPrivate/z-nomp.git
45 lines
1.3 KiB
JavaScript
45 lines
1.3 KiB
JavaScript
var redis = require('redis');
|
|
|
|
module.exports = function(logger, poolConfig){
|
|
|
|
var redisConfig = poolConfig.shareProcessing.internal.redis;
|
|
var coin = poolConfig.coin.name;
|
|
|
|
var connection;
|
|
|
|
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);
|
|
});
|
|
}
|
|
connect();
|
|
|
|
|
|
this.handleShare = function(isValidShare, isValidBlock, shareData){
|
|
|
|
|
|
if (!isValidShare) return;
|
|
|
|
connection.hincrby([coin + ':' + shareData.height, shareData.worker, shareData.difficulty], function(error, result){
|
|
if (error)
|
|
logger.error('redis', 'Could not store worker share')
|
|
});
|
|
|
|
};
|
|
|
|
}; |