summaryrefslogtreecommitdiff
path: root/worker.js
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2017-04-09 18:22:27 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2017-04-09 18:22:27 +0200
commit49a0121586406032309c5c392c27629d11a8c9a3 (patch)
tree990509729dd3b30eebe950d1ea35c98286b08e82 /worker.js
parente00120259fb2eb637ec1dd7531a8a69394a8ef86 (diff)
downloadprocessor-49a0121586406032309c5c392c27629d11a8c9a3.tar.gz
processor-49a0121586406032309c5c392c27629d11a8c9a3.zip
fix silent overwrites of player records
Diffstat (limited to 'worker.js')
-rw-r--r--worker.js26
1 files changed, 15 insertions, 11 deletions
diff --git a/worker.js b/worker.js
index 6b5cb0b..24c457b 100644
--- a/worker.js
+++ b/worker.js
@@ -121,6 +121,9 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
let players = JSON.parse(msg.content);
players.map((p) => {
let player = flatten(p);
+ // player objects that arrive here came from a search
+ // with search, updater can't update last_update
+ player.last_update = seq.fn("NOW");
console.log("processing player", player.name);
if (!is_in(player_records, player))
player_records.push(player);
@@ -259,7 +262,10 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
transaction: transaction
}),
model.Player.bulkCreate(player_records, {
- updateOnDuplicate: [],
+ updateOnDuplicate: [
+ "shard_id", "api_id", "name",
+ "level", "xp", "lifetime_gold"
+ ],
transaction: transaction
}),
model.ItemParticipant.bulkCreate(participant_item_records, {
@@ -287,16 +293,14 @@ var RABBITMQ_URI = process.env.RABBITMQ_URI,
order: [ [seq.col("created_at"), "DESC"] ]
});
if (record != null) {
- await model.Player.update(
- {
- last_match_created_date: record.get("last_match_created_date"),
- skill_tier: record.get("skill_tier")
- }, {
- where: { api_id: player.api_id },
- fields: [ "last_match_created_date", "skill_tier" ],
- transaction: transaction
- }
- );
+ await model.Player.update({
+ last_match_created_date: record.get("last_match_created_date"),
+ skill_tier: record.get("skill_tier")
+ }, {
+ where: { api_id: player.api_id },
+ fields: [ "last_match_created_date", "skill_tier" ],
+ transaction: transaction
+ });
}
}));
});