Я пытаюсь быстро публиковать сообщения на своем сервере через Websockets. Для каждого сообщения сервер получает я храню его в форме «timestamp: message» в моей HashMap. Мне нужна HashMaps для возврата истории сообщений в хронологическом порядке с необходимой меткой времени. (Любая другая рекомендация структуры данных приветствуется.)Duplicate millisecond timestamp issue
Так получилось, что при быстром публикации сообщений два или более сообщений имеют одну и ту же метку времени, и поэтому я не могу их сохранить. Я уже использую System.currentTimeMillis()
. Я не могу войти в наносекунды, я читаю, что это значение произвольно и часто ненадежно.
Я попытался добавить статическую переменную AtomicInteger
в конце временных меток, и она работает, но когда я возвращаю сообщения моему пользователю, мне нужно вернуть JSON, и снова я не могу сохранить дубликат ключа.
Как я могу решить эту проблему?
извините, переместил его на ответ, потому что он слишком длинный;) – kmera
Используйте 'System.nanoTime()'. Хотя обратите внимание, что _Отличия в последовательных вызовах, которые охватывают более 292 лет ... неправильно вычисляют _. (!) –
Я бы хотел, чтобы это было надежно. Но это не так. –