Size: a a a

2020 June 04

IK

Igor Komarov in pro.jvm
Вот смотрю сейчас как-раз, не вижу ничего про упорядочивание задач. Проблема в моем случае в том, что мне нужно гарантировать выполнение задачи в течении N-ного времени с момента ее появления на ограниченных ресурсах.
источник

АД

Александр Дерюгин... in pro.jvm
слишком скользкая тема шедулеров, гарантий вам не даст никто
источник

IK

Igor Komarov in pro.jvm
Гарантии мне даст упорядочивание задач (в моем конкретном случае). Но этой функции я пока не увидел ни в одной либе..
источник

IK

Igor Komarov in pro.jvm
Причем в идеале – в виде динамически пересчитываемых приоритетов (это вот совсем шикарно было бы, чтобы голову не ломать)
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Igor Komarov
Гарантии мне даст упорядочивание задач (в моем конкретном случае). Но этой функции я пока не увидел ни в одной либе..
Эта функция не в либе, просто размещайте задачи в очереди с приоритетами
источник

IK

Igor Komarov in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Эта функция не в либе, просто размещайте задачи в очереди с приоритетами
И писать свой шедулер?) Не то чтобы не могу, но очень не хочется, если честно, когда уже есть много неплохих вариантов, написанных серьезными ребятами
источник

АД

Александр Дерюгин... in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Эта функция не в либе, просто размещайте задачи в очереди с приоритетами
это не даст гарантии что задача выполнится в течении N-ного времени с момента ее появления
источник

АД

Александр Дерюгин... in pro.jvm
вообще постановка задачи у вас такая, что надо делать свой под конкретную задачу
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Igor Komarov
И писать свой шедулер?) Не то чтобы не могу, но очень не хочется, если честно, когда уже есть много неплохих вариантов, написанных серьезными ребятами
Нет, шедулер используйте хоть спринговый, хоть кварц. Просто вытягиваете следующее задание из очереди
источник

IK

Igor Komarov in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Нет, шедулер используйте хоть спринговый, хоть кварц. Просто вытягиваете следующее задание из очереди
Можно тогда вопрос? В чем смысл шедулера если я пишу вокруг него свой шедулер?)
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Александр Дерюгин
это не даст гарантии что задача выполнится в течении N-ного времени с момента ее появления
Не даст, но вопрос был о приоритетах, а не гарантиях.
Гарантии нет нигде кроме систем реального времени
источник

АД

Александр Дерюгин... in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Не даст, но вопрос был о приоритетах, а не гарантиях.
Гарантии нет нигде кроме систем реального времени
так у человека в этом и проблема:
что мне нужно гарантировать выполнение задачи в течении N-ного времени с момента ее появления на ограниченных ресурсах
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Igor Komarov
Можно тогда вопрос? В чем смысл шедулера если я пишу вокруг него свой шедулер?)
Мне кажется, вы путаете шедулер с чем-то еще
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Александр Дерюгин
так у человека в этом и проблема:
что мне нужно гарантировать выполнение задачи в течении N-ного времени с момента ее появления на ограниченных ресурсах
Ну он говорит, что приоритеты дадут ему эти гарантии
источник

IK

Igor Komarov in pro.jvm
Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶
Мне кажется, вы путаете шедулер с чем-то еще
планировщик задач. Совсем просто – штука, которой сказали: тикни задачу во время X и она тикнула
источник

D𝔇

Dmitry 𝔇𝔪𝔦𝔱𝔯𝔶... in pro.jvm
Igor Komarov
планировщик задач. Совсем просто – штука, которой сказали: тикни задачу во время X и она тикнула
Ну вот она тикнула задачу - "вытащить из очереди следующую задачу"
источник

VP

Vladimir Petrakovich in pro.jvm
evergood
так я не понял, а смысл тогда в чём, если у тебя дома рутер это тоже одна сеть?
Приоритеты можно разрулить через обычный ThreadPoolExecutor с PriorityBlockingQueue.
А отсрочку делать с помощью отдельного ScheduledExecutorService, задачи в котором будут просто создавать задачи в основном шедулере (который с очередью с приоритетами).
источник

VP

Vladimir Petrakovich in pro.jvm
Ой, reply не туда
источник

АД

Александр Дерюгин... in pro.jvm
Vladimir Petrakovich
Приоритеты можно разрулить через обычный ThreadPoolExecutor с PriorityBlockingQueue.
А отсрочку делать с помощью отдельного ScheduledExecutorService, задачи в котором будут просто создавать задачи в основном шедулере (который с очередью с приоритетами).
ну это опять не даст гарантий выполнения в течении n-ного времени после триггера. Executor будет занят выполнением задач чуть дольше и новая так и не успеет поступить на выполнение, гонка за ресурсы она такая
источник

VP

Vladimir Petrakovich in pro.jvm
Александр Дерюгин
ну это опять не даст гарантий выполнения в течении n-ного времени после триггера. Executor будет занят выполнением задач чуть дольше и новая так и не успеет поступить на выполнение, гонка за ресурсы она такая
Про гарантии вроде бы речь уже не идёт, только про приоритет.
Писать real-time приложение на джаве всё равно так себе затея, придёт GC с STW и всё. Да и ОС ничего не гарантирует.
источник