powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / callable & context
9 сообщений из 9, страница 1 из 1
callable & context
    #39199015
diverM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет,
Есть потоковые задачи которые выполняет executorService. Необходимо следить за прогрессом вылолнения этих задач, типа статут, и статистика - % выполнения, ошибки и т.д.
Можно передавать context в эту потоковую задачу(которая должна обновлять его) и трекать прогресс через этот context.
Можно передавать callable в потоковую задачу и получать назад обновления прогресса.
Хотелось бы улышать мнения какой их эти способов предпочтительнее или хотя бы почему вы предпочитаете одно, а не другое.

П.С. вариант трекания через БД не рассматриваю.
...
Рейтинг: 0 / 0
callable & context
    #39199019
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
diverM...Можно передавать context в эту потоковую задачу(которая должна обновлять его) и трекать прогресс через этот context....
И как понимать, что context изменился?

IMHO все равно какой-то callback нужен и/или таймер.

В общем, лично я принципиальной разницы между этими двумя вариантами (контекст, коллбак) не вижу.
...
Рейтинг: 0 / 0
callable & context
    #39199020
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВ общем, лично я принципиальной разницы между этими двумя вариантами (контекст, коллбак) не вижу.
Аналогично.
...
Рейтинг: 0 / 0
callable & context
    #39199021
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
diverM,

Можно ещё обозвать Listener, или Observer. Но принципиально, ведь, ничего не поменяется.

Единственная альтернатива, которая приходит на ум это побить задачи на более мелкие, и тогда прогресс и ошибки отслеживать уже внутри ExecutorService, не напрягая этой ерундой сами задачи.
...
Рейтинг: 0 / 0
callable & context
    #39199022
diverM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Leonid KudryavtsevИ как понимать, что context изменился?

context сохранен в какой-то мапе и мы обращаемся к нему когда надо определить текущий прогресс. например по пользовательскому запосу.
...
Рейтинг: 0 / 0
callable & context
    #39199026
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня иногда получается некий промежуточный "context" как агригатор callback'ов.

Т.е., если например говорить о ProgressBar

Рисовальщик progress bar -- состояние прогресс бара (проценты) --- рабочий процесс(ы)

1) Рабочие процессы обновляют (или callback'чит ) состояние, например после обработки одной или N записи (при этом callback'и могут идти очень часто)
2) Состояние делает callback в рисовальщик, раз в секунду или когда изменилось кол-во процентов. Т.е. намного режи.
3) Рисовальшик отрисовывает новое состояние
...
Рейтинг: 0 / 0
callable & context
    #39199031
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
diverMcontext сохранен в какой-то мапе и мы обращаемся к нему когда надо определить текущий прогресс. например по пользовательскому запосу.
Да ради бога.

Просто как Вы будете менять состояние / обновлять его?

Скорее всего вызовом метода вида:

synchronized void setProgress( int new_progress );

от callback'а это будет отличаться только названием метода. IMHO & AFAIK
...
Рейтинг: 0 / 0
callable & context
    #39199042
diverM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
BlazkowiczdiverM,
Единственная альтернатива, которая приходит на ум это побить задачи на более мелкие, и тогда прогресс и ошибки отслеживать уже внутри ExecutorService, не напрягая этой ерундой сами задачи.
Имеется ввиду что эти более мелкие задачи атомарны и уже не могут сами влиять на прогресс? Если нет, то тогда возврат к исходной задаче о получении прогресса из более мелкой задачи.
...
Рейтинг: 0 / 0
callable & context
    #39199058
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
diverMИмеется ввиду что эти более мелкие задачи атомарны и уже не могут сами влиять на прогресс? Если нет, то тогда возврат к исходной задаче о получении прогресса из более мелкой задачи.
Не очень понял формулировку. Но суть в том что каждая задача как бы обновляет прогресс 1 единственный раз только при успешном выполнении. В результате ExecutorService может формировать прогресс подсчитывая успешность задач.

Но без конкретики тут трудно решить можно ли так сделать.
Контекст плох наличием зависимости от этого контекста.
Callback это тоже самое, с немного меньшим coupling. А, так, что в лоб, что по лбу.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / callable & context
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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