fix race condition in passive profiling
This commit is contained in:
parent
3b7dd524db
commit
39049e1c7c
1 changed files with 11 additions and 20 deletions
|
|
@ -123,26 +123,17 @@ sub summarizeAOI {
|
||||||
where f.fieldId = d.fieldId
|
where f.fieldId = d.fieldId
|
||||||
and d.assetId = ".$session->db->quote($data->{assetId});
|
and d.assetId = ".$session->db->quote($data->{assetId});
|
||||||
|
|
||||||
my $sth = $session->db->read($sql);
|
my $sth = $session->db->read($sql);
|
||||||
while (my $field = $sth->hashRef) {
|
while (my $field = $sth->hashRef) {
|
||||||
my $aoi = $session->db->quickHashRef("select * from passiveProfileAOI
|
$session->db->write(
|
||||||
where userId=".$session->db->quote($data->{userId})."
|
"INSERT IGNORE INTO passiveProfileAOI (userId, fieldId, value, count) VALUES (?, ?, ?, ?)",
|
||||||
and fieldId=".$session->db->quote($field->{fieldId})." and
|
[$data->{userId}, $field->{fieldId}, $field->{value}, 0],
|
||||||
value=".$session->db->quote($field->{value}));
|
);
|
||||||
if(not exists $aoi->{userId}) {
|
$session->db->write(
|
||||||
# Add record to DB
|
"UPDATE passiveProfileAOI SET count=count+1 WHERE userId=? AND fieldId=? AND value=?",
|
||||||
$session->db->write("insert into passiveProfileAOI (userId, fieldId, value)
|
[$data->{userId}, $field->{fieldId}, $field->{value}],
|
||||||
values (".$session->db->quote($data->{userId}).",".
|
);
|
||||||
$session->db->quote($field->{fieldId}).",".
|
}
|
||||||
$session->db->quote($field->{value}).")");
|
|
||||||
}
|
|
||||||
my $count = $aoi->{count};
|
|
||||||
$count++;
|
|
||||||
$session->db->write("update passiveProfileAOI set count=".$session->db->quote($count)."
|
|
||||||
where userId=".$session->db->quote($data->{userId})."
|
|
||||||
and fieldId=".$session->db->quote($field->{fieldId})." and
|
|
||||||
value=".$session->db->quote($field->{value}));
|
|
||||||
}
|
|
||||||
$sth->finish;
|
$sth->finish;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue