Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
29.03.2019, 13:08
|
|||
---|---|---|---|
|
|||
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
Задача такая: В некий класс/сервис должны поступать задачи. В рамках задачи нужно работать с базой в рамках транзакции + вызовы к сторонним системам через HttpClient, в случае успеха выполнения которых нужно успешно закрывать транзакцию. При этом стоит требование об ограничении количества параллельно выполняющихся таких задач (тасков). Соответственно по задумке, при поступлении задачи должен стартовать новый Task и что-то там делать. Общее количество работающих задач я планирую ограничить через семафор. Но сложность в том, чтобы реализовать следующее: Нужно проконтролировать, что задачи при успешном И не успешном выполнении отчистят все ресурсы за собой: закроют соединение, освободят семафор, уберут ссылку на себя - чтобы не утекала память. На все время выполнения задачи ссылку на нее нужно где-то сохранять, чтобы сборщик мусора не убил, но затем эту ссылку нужно почистить. Как такое можно реализовать ? Есть ли готовые решения ? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 13:10
|
|||
---|---|---|---|
|
|||
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
Используйте TaskScheduler ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 13:11
|
|||
---|---|---|---|
|
|||
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
точнее реализуйте свой. который будет запускать таск, с ограничением на количество, очередью выполнения и прочим, прочим, прочим ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 13:13
|
|||
---|---|---|---|
|
|||
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
Roman Mejtesточнее реализуйте свой. который будет запускать таск, с ограничением на количество, очередью выполнения и прочим, прочим, прочим Про TaskScheduler не знал, спасибо, буду копать. А вот необходимость реализовывать "ограничением на количество, очередью выполнения и прочим, прочим, прочим" как раз смущает ) Этого я и хотел избежать. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 14:16
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCoreЭтого я и хотел избежать тогда программиста нанимать нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 14:19
|
|||
---|---|---|---|
|
|||
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
Изопропил, Ищем, приходите на собеседование ) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 14:20
|
|||
---|---|---|---|
|
|||
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
Насчет TaskScheduler я переборщил. Из головы вылетело про него. Обычно напрямую таски создаем через Task.Run. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 14:43
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCoreбазой в рамках транзакции + вызовы к сторонним системам через HttpClient,читать про РАСПРЕДЕЛЕННЫЕ транзакции. Дорогая штука. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 14:52
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCore, Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 14:55
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCoreЭтого я и хотел избежать.дык у вас в ТЗ слова Ограничения/ограничить.))) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:06
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCore, в сторону pipeline- pattern смотрел? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:08
|
|||
---|---|---|---|
|
|||
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
Petro123WaspNewCoreбазой в рамках транзакции + вызовы к сторонним системам через HttpClient,читать про РАСПРЕДЕЛЕННЫЕ транзакции. Дорогая штука. Распределенные задачи не нужны ! Требуется чтобы созданный таск в рамках транзакции обрабатывал данные из бд. Запрашивал дополнительную информацию у стороннего сервиса, и успешно закрывал транзакцию после обработки. Либо падал с откатом транзакции, чтобы кто-то другой подхватил задачу и попробовал ее сделать. Основная сложность, при поступлении задач, генерить таски не больше заданного одновременного количества (думаю через семафор), а также следить за тем, чтобы таски завершаясь освобождали ресурсы - тот же семафор. Соотвественно где-то хранить список текущих тасков, защищая их от сборщика мусора, и удалять завершенные. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:11
|
|||
---|---|---|---|
|
|||
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
vb_subWaspNewCore, в сторону pipeline- pattern смотрел? В первый раз слышу про него, это явно не классический от GOF. Почитаю, может придумаю как задействовать. Надеюсь это не просто producer-consumer..... Ой. Кстати. Может BlockingCollection поможет решить мою задачу, нужно подумать.. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:23
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCoreРаспределенные задачи не нужны ! Требуется чтобы созданный таск в рамках транзакции обрабатывал данные из бд. Запрашивал дополнительную информацию у стороннего сервиса, и успешно закрывал транзакциюможет в школу сходить? Распределенные не задачи, я говорил, а транзакции. Приводи пример уже что ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:26
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCore, Если без распределенных, то обычная очередь для того чтобы другой подхватил. Транзакция будет одна в одном блоке try. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:29
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCoreТребуется чтобы созданный таск в рамках транзакции обрабатывал данные из бд.все бд работают в рамках транзакции. Комментируй. Либо это лишние слова и ты просто читаешь из бд, и потом пишешь несколько операций одной транзакцией. Например 10 раз insert с откатом. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:32
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCoreОбщее количество работающих задач я планирую ограничить через семафор.вместо пула потоков с maxPoolingThread? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:42
|
|||
---|---|---|---|
|
|||
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
Petro123, Есть тонкость, которую я забыл упомянуть. Одновременно будет работать несколько таких сервисов, по обработке задач. Работать будут в одном приложении - в разных потоках. Поэтому ограничить через общий пул потоков не выйдет. Нужны индивидуальные настройки. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:45
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCoreЕсть ли готовые решения ? Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Что по ТЗ упустил? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:47
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCoreнесколько таких сервисовпереведи. Зачем? У тебя и от одного сервиса весь проц будет занят. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:48
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCoreобщий пул потоковон общий вроде на процесс ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:50
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCore, Задача равно поток. И не усложняй жизнь семафорами. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 15:56
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
WaspNewCore, зачем ограничивать общее количество работающих задач? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 16:00
|
|||
---|---|---|---|
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
vb_subWaspNewCore, зачем ограничивать общее количество работающих задач?+1 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
29.03.2019, 16:55
|
|||
---|---|---|---|
|
|||
Как реализовать такую идею ? Есть ли готовые решения ? |
|||
#18+
Petro123, Упущено ограничение на одновременную работу не более заданного числа. Т.е. должно быть примерно так: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=20&mobile=1&tid=1399031]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
126ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 493ms |
0 / 0 |