-
Паттерн использования такой: идёт поток ивентов, среди них нужно учитывать только последний по какому-то id-полю. То есть пока я думал сделать LRU-кеш, переписывая по этому самому id-полю значения, при удалении из LRU считать объект "конечным", также при окончании ивентов всё, что внутри LRU считать конечным.
Replies (13)
-
@kb, из разряда "от балды", а hackage.haskell.org с буффером в 1 сообщение не покатит?/1 · Reply
-
@qrilka, Не очень понял о чём ты конкретно. Я пока думаю допилить hackage.haskell.org операцией insertWithCleanup чтоб при удалении элемента действие назначить можно было, вроде других LRU мапов вообще не нашёл.
-
@qrilka, Мне нужен каждый последний по какому-то полю. То есть, конкретно, мне нужно считать время, проведённое пользователем на странице. Для этого он периодически шлёт пинги примерно такого вида:
```
{"user_id": "qrilka", "impression_id": 123, "duration": 1000}
{"user_id": "qrilka", "impression_id": 123, "duration": 2000}
{"user_id": "qrilka", "impression_id": 123, "duration": 3000}
```
При следующем заходе тебя на другую страницу будет то же самое, только другой impression_id.
Так вот мне нужно из потока таких ивентов (для всех юзеров) по каждому impression_id оставить только последний. Т.к. люди не висят слишком долго на странице, LRU должен прекрасно подойти.