monitor duplicate crosstables
parent
d78a56ead3
commit
987d5e2bca
|
@ -315,6 +315,7 @@ object mon {
|
|||
object crosstable {
|
||||
val create = future("crosstable.create.time")
|
||||
def createOffer(result: String) = counter("crosstable.create.offer").withTag("result", result)
|
||||
val duplicate = counter("crosstable.create.duplicate").withoutTags
|
||||
val createNbGames = histogram("crosstable.create.nbGames").withoutTags
|
||||
}
|
||||
object relation {
|
||||
|
|
|
@ -112,7 +112,10 @@ final class CrosstableApi(
|
|||
.queue[Creation](512, OverflowStrategy.dropNew)
|
||||
.mapAsyncUnordered(8) {
|
||||
case ((u1, u2), promise) =>
|
||||
create(u1, u2) recover {
|
||||
create(u1, u2) recoverWith lila.db.recoverDuplicateKey { _ =>
|
||||
lila.mon.crosstable.duplicate.increment()
|
||||
coll.one[Crosstable](select(u1, u2)) dmap { _ | Crosstable.empty(u1, u2) }
|
||||
} recover {
|
||||
case e: Exception =>
|
||||
logger.error("CrosstableApi.create", e)
|
||||
Crosstable.empty(u1, u2)
|
||||
|
|
Loading…
Reference in New Issue