|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Аврал с кэшами, нужно сделать следующую вещь: в приложение приходит массив ID, которые надо положить во что-то (складывать в это что-то в течение нескольких секунд), а потом при наступлении @Scheduled(fixedDelay = 1000 * 20) это что-то передать в evict() метод для очистки кешей с такими ID. При этом после передачи надо удалить элементы из этого что-то - удалить те, которые передали в evict(). Что посоветуете ? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 19:15 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Герой дня, Код: java 1. 2. 3.
Guava Cache ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 20:09 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
надо удалять не по времени, так нормально ? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 20:40 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Нужно удалить определенные записи, но не сразу, а через 20 секунд? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.06.2018, 21:17 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
fixxer, да, эти ID надо накопить и потом через 20 сек очистить, причем, в момент очищения не должно быть конфликтов с другими потоками, которые хотят добавить новые ID в тот же буфер ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 13:14 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Может я не понимаю, но я вообще проблемы не вижу. Копить данные в любой коллекции, хоть ArrayList. При наступлении момента X - всю ArrayList передаете в метод очистки, а на ее месте создаете новый ArrayList не должно быть конфликтов с другими потоками, которые хотят добавить новые ID в тот же буфер А зачем в тот же? создайте новый ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 13:24 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Leonid KudryavtsevМожет я не понимаю, но я вообще проблемы не вижу. Копить данные в любой коллекции, хоть ArrayList. При наступлении момента X - всю ArrayList передаете в метод очистки, а на ее месте создаете новый ArrayList не должно быть конфликтов с другими потоками, которые хотят добавить новые ID в тот же буфер А зачем в тот же? создайте новый может быть, но хотелось бы Set и с ограничением размера, что-то типа очереди - очередь ограничена размером, при вставке элементов не растет ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 15:09 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Разве очередь подразумевает ограничение по длине? Концепция FILO и не более того. Возьми LinkedHashMap и удаляй лишнее, хоть кажду итерацию, хоть отдельным циклом. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 18:11 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Hett, нашел org.apache.commons.collections4.queue.CircularFifoQueue; CircularFifoQueue is a first-in first-out queue with a fixed size that replaces its oldest element if full. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 18:42 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Хотел написать про CircleRingBuffer но это не Set. Ну и не понятно, что Вы собираетесь делать, если в момент вставки "место закончилось". Так же непонятны требования к concurrent'ности. Можно на https://github.com/JCTools/JCTools посмотреть Там вроде есть Multi Producer Single Consumer коллекции ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 18:57 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Я как понимаю, в коде в сообщение 2 может быть единственная опасность: если данные добавляются быстрее, чем выгребаются, то теоретически можно попасть в вечный цикл, т.к. queue-set никогда не будет пустой. "Допилив" очереди типа CircleRingBuffer'а, можно перед извлечением сохранять текущий индекс, и останавливать выборку, когда подобрались к этому индексу, это уже пойдут данные, записанные послен того, как processCacheEviction был запущен. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 19:07 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Так сам сказал, что set нужен. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 19:10 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Да, я еще что-то fifo с filo перепутал. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.06.2018, 19:11 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
в общем, пока остановился на промежуточном этапе с обычной очередью ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2018, 01:19 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Герой дня, Ну и тему топика ты создал. Как новичОк)). ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2018, 09:51 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Герой дня, В том смысле что озаглавил тему))) автор Срочный вопрос - куда во что ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2018, 09:53 |
|
Срочный вопрос - куда во что ?
|
|||
---|---|---|---|
#18+
Меня тоже смутило название топика. Куда-во-что. Войти в It.. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.06.2018, 11:40 |
|
|
start [/forum/topic.php?fid=59&fpage=45&tid=2121994]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
14ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 176ms |
0 / 0 |