Skip to content

Instantly share code, notes, and snippets.

@grncdr
Last active December 18, 2015 19:29
Show Gist options
  • Select an option

  • Save grncdr/5833054 to your computer and use it in GitHub Desktop.

Select an option

Save grncdr/5833054 to your computer and use it in GitHub Desktop.
var mysql = require('mysql');
var Gearman = require('gearman-node')
var once = require('once');
var pool = mysql.createPool({
host : 'localhost',
user : 'ingress',
password : 'ingress12345',
database : 'ingress_data',
connectionLimit : 5,
queueLimit : 1000
});
var gearman = new Gearman(hostname, port);
gearman.registerWorker("parse", function(payload, worker){
console.log("GearnodeWorking");
// Ensure we only report failures to gearman once
var failWorker = once(worker.error.bind(worker));
var fail = function (err) {
failWorker();
console.log(JSON.stringify(err));
}
pool.getConnection(function (err, connection) {
if (err) { return fail(err); }
connection.on('error', fail);
connection.query('/*txnstart*/START TRANSACTION');
var obj;
try {
obj = JSON.parse(payload);
} catch(err) {
return fail(new Error("Parse error: " + payload));
}
if (obj != null) parse(obj);
connection.query('/*txnstop*/COMMIT', function (err) {
if (err) return fail(err);
console.log("GearnodeDone");
job.complete(payload);
});
});
});
gearman.connect();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment