powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание потоков из Timer
17 сообщений из 42, страница 2 из 2
Создание потоков из Timer
    #39699739
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123qi_ipсоздает отдельные микрозадачи каждые в своем потоке.хотя бы время озвучил микрозадачи и задержку таймера.
Сложно сказать, так как пока в режиме теста (подбор возможных вариантов). По сути, задержка таймера по минимуму. Время на микрозадачу: селект записи по userId, считывание данных строки в переменную, отправка по вебсокету этих данных, апдейт статуса строки - конец задачи. Сколько займет времени пока не замерял - нужно чем быстрее, тем лучше.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39699750
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip,
Если врубить второй кэш в хибере, то и в базу не надо лезть).
...
Преждевременная оптимизация называется.
Тесты нужны.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39699757
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123qi_ip,
Если врубить второй кэш в хибере, то и в базу не надо лезть).
...
Преждевременная оптимизация называется.
Тесты нужны.

К сожалению, хибер тут не используется (((
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39699769
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipНюанс в том, что я не могу это объединить в общий запрос для апдейта, так как по каждой записи, которую сделал select по сокету каждому пользователю отправляю сообщение.
С пулом потоков будет быстрее?
И что, транзакции висят пока сообщение не будет отправлено? Только потом комитяться? Это же пипец базе, залочится всё нахрен.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39699778
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BlazkowiczИ что, транзакции висят пока сообщение не будет отправлено?
+1
Аффтар!
Решение без коммита:
При новой сессии отпраляем все что спросит.
При каждой отправке пишем в оперативку тайштамп время последней отправки.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39699796
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Blazkowiczqi_ipНюанс в том, что я не могу это объединить в общий запрос для апдейта, так как по каждой записи, которую сделал select по сокету каждому пользователю отправляю сообщение.
С пулом потоков будет быстрее?
И что, транзакции висят пока сообщение не будет отправлено? Только потом комитяться? Это же пипец базе, залочится всё нахрен.
Делаю селект, отправляю сообщение с данными из селекта, делаю апдейт. При селекте, разве база лочится?


Petro123BlazkowiczИ что, транзакции висят пока сообщение не будет отправлено?
+1
Аффтар!
Решение без коммита:
При новой сессии отпраляем все что спросит.
При каждой отправке пишем в оперативку тайштамп время последней отправки.
И потом общий апдейт?
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39699803
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipДелаю селект, отправляю сообщение с данными из селекта, делаю апдейт. При селекте, разве база лочится?
Тогда всё ещё не понятно почему нужно делать апдейты в отдельных потоках?
Получили список ID. Сделали по нему выборку. Отправили всем сообщения. Потом батч-апдейтом накатили всем то кого пришло подтверждение.

Вы изобретаете потоки там где они не нужны. Потоки вам по факту нужны только чтобы отправлять сообщения.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39699806
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipИ потом общий апдейт?о чем?
Незачем сохранять в базу вообще.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39699811
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipPetro123пропущено...
хотя бы время озвучил микрозадачи и задержку таймера.
Сложно сказать, так как пока в режиме теста (подбор возможных вариантов). По сути, задержка таймера по минимуму. Время на микрозадачу: селект записи по userId, считывание данных строки в переменную, отправка по вебсокету этих данных, апдейт статуса строки - конец задачи. Сколько займет времени пока не замерял - нужно чем быстрее, тем лучше.
Дружище. Я читаю уже много постов и не пойму какая решается задача.
Классическая работа с бд в режиме OLTP не требует каких то фоновых потоков и ухищрений.
Либо у тебя в бд уже есть проблема и ее надо решать в бд. Плодить потоки можно в java бесконечно много но это не помогает работе БД.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39700247
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczТогда всё ещё не понятно почему нужно делать апдейты в отдельных потоках?
Получили список ID. Сделали по нему выборку. Отправили всем сообщения. Потом батч-апдейтом накатили всем то кого пришло подтверждение.

Вы изобретаете потоки там где они не нужны. Потоки вам по факту нужны только чтобы отправлять сообщения.
Понятно, согласен, что для апдейтить в потоке может быть не правильно, единственный нюанс который я вижу, что апдейты будут не успевать за отправками сообщениями, но тут чисто ИМХО, так как еще не протестировал.

Petro123qi_ipИ потом общий апдейт?о чем?
Незачем сохранять в базу вообще.
Мне нужно проапдейтить запись, для кого было отправлено сообщение.

maytonДружище. Я читаю уже много постов и не пойму какая решается задача.
Классическая работа с бд в режиме OLTP не требует каких то фоновых потоков и ухищрений.
Либо у тебя в бд уже есть проблема и ее надо решать в бд. Плодить потоки можно в java бесконечно много но это не помогает работе БД..
Потоки появились из-за необходимости через вебсокет отправлять сообщения определенным пользователям с максимальной скоростью доставки, а апдейтить, как уже написал Blazkowicz можно не в потоке, а батч-апдейтом.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39700252
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipМне нужно проапдейтить запись, для кого было отправлено сообщение.десять раз спросить?
Зачем это нужно?
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39700255
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123qi_ipМне нужно проапдейтить запись, для кого было отправлено сообщение.десять раз спросить?
Зачем это нужно?
Пометить что для данного пользователя определенный текст был отправлен и не отправлять в следующий раз.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39700260
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip,
Я же привел вариант.
При старте сессии ты отправляешь клиенту все мессаги что попросит.
Он же их не хранит у себя.
А потом хранишь не в базе а в оперативке.
Вариант?
Тогда апдейт не нужен.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39700262
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip,
Помечают в базе когда БЛ в базе. Например, хранимка JOB.
У тебя БЛ не в базе.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39700264
qi_ip
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Petro123qi_ip,
Я же привел вариант.
При старте сессии ты отправляешь клиенту все мессаги что попросит.
Он же их не хранит у себя.
А потом хранишь не в базе а в оперативке.
Вариант?
Тогда апдейт не нужен.
Согласен, вариант, но тогда в моем случае, если не будет помечено, что данному пользователю конкретное сообщение было послано, после потенциальной перезагрузке сервера все сообщения опять заново полетят, что не нужно.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39700267
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ip,
Нет))). Будет опять реконнект и новая сессия.
Короче, делай потоки хоть на select.
Аргументы кончились.
...
Рейтинг: 0 / 0
Создание потоков из Timer
    #39700269
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
qi_ipПотоки появились из-за необходимости через вебсокет отправлять сообщения определенным пользователям с максимальной скоростью доставки, а апдейтить, как уже написал Blazkowicz можно не в потоке, а батч-апдейтом.тонким местом будет перебор листа с пользователями кому надо отправлять.
qi_ipкак уже написал Blazkowicz можно не в потоке, а батч-апдейтом.это да, но только пока ты заполняешь этот батч, а как заполнишь - будешь ждать пока он выполнится....
вот тут их можно разнести на потоки 2батча - 2 потока. но вопрос а субд справится?
...
Рейтинг: 0 / 0
17 сообщений из 42, страница 2 из 2
Форумы / Java [игнор отключен] [закрыт для гостей] / Создание потоков из Timer
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]