ilink_updater
Version:
96 lines (90 loc) • 3.06 kB
JavaScript
insert_querys = [];
updater.query_sender = function (Q) {
Pool.getConnection(function (err, mysql_connection) {
function process_query(err, results) {
if (err) {
pino.error({
name: 'bad_insert_query', source: 'ilink_updater/lib/update/' + __line, function: __function,
module: 'test', template: '', obj: Q
});} else {
if (Q.make_cache) {
var id=(Q.update_id)?Q.update_id:results.insertId;
var cache = {
db_name: Q.db_name, make_cache: Q.make_cache, id:id,
table_name: Q.table_name,type:Q.type
};
rsmq.sendMessage({qname: "cache_queue", message: JSON.stringify(cache)}, function () {
pino.info({query_name:Q.query_name},'inserted_query')
});
id = null;
cache = null;
}
mysql_connection.release();
}
}
mysql_connection.query(Q.sql, [],process_query );
})
};
updater.send_msg=function(clone){
function make_insert_obj(Q){
var sql = Q.query;
var inserts = [];
if (Q.multi) {
inserts = [Q.values];
} else {
inserts = [Q.inserted_obj];
}
sql = mysql.format(sql, inserts);
inserts=null;
var obj = {
db_name: clone.db_name,
sql: sql,
type: clone.type,
update_id: Q.update_id,
table_name: Q.name,
query_name: clone.query_name,
make_cache: clone.make_cache
};
updater.query_sender(obj);
obj = null;
sql=null;
}
_.each(clone.Q_arr, function (R) {
_.each(R.object,make_insert_obj);
R = null;
});
};
updater.update = function (param) {
var D = QUERY_DEFINITIONS[param.query_name];
var host_params = HOST_LIST[param.client];
if (host_params) {
var Q_arr = update_param_maker(param.query_name, param.obj, host_params.database);
var Q = {
db_name: host_params.database,
Q_arr: Q_arr,
make_cache: D.make_cache,
query_name: D.name,
type: 'update'
};
if (!Q_arr.error) {
updater.send_msg(Q);
Q=null;
Q_arr=null;
} else {
finish(Q);
}
} else {
var M={
name: 'client_not_exist',
source: 'ilink_updater/lib/update/' + __line,
function: __function,
module: 'test', client: db_name
};
rsmq.sendMessage({qname: "fatal", message: M}, function (err, res) {
});
pino.error();
}
};
updater.timer = function () {
timer("update_queue", insert_querys, InsertRefreshInterval, false, updater.update);
};