Показать сообщение отдельно
Старый 21.04.2021, 20:59   #47  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Сообщение от gl00mie Посмотреть сообщение
Ну вот же 2-я опция из 3-х в исходном сообщении


Цитата:
Сообщение от gl00mie Посмотреть сообщение
Если речь про разбивку 100500 сообщений на пачки, то
не-не-не-не!
еще раз: посмотри как сформулирован вопрос.
я сформулировал ровно то, что хотел сформулировать и постарался убрать из вопроса то, что может ограничить решение.

пачки - это одно из возможных решений.
пачки - это всего лишь второй уровень наивности решения.

давайте я таки скажу какое решение я бы считал идеальным:

1. отправитель готовит коллекцию типизированных объектов произвольного размера
2. отправитель вызывает какой-нибудь специальный метод
3. транспортный уровень, зная о своих возможностях и о размерах буферов, сам организует поток (stream), сам разбивает на пачки, сам их их шифрует, сам собирает эти пачки на приемнике
4. приемник получает собранную коллекцию типизированных объектов

то, что делает WCF. за исключением коллекций большого размера.
вот я и подумал, что может это я чего не знаю.
ну должен же быть решен вопрос с коллекциями в WCF.

хорошо, пусть WCF вопрос с коллекциями не решает.
но ведь вопрос типовой и где-то решение должны были предложить.

Цитата:
Сообщение от gl00mie Посмотреть сообщение
Поскольку неизвестно, что именно за данные надо передавать и как обрабатывать на принимающей стороне, то сложно тут придумать что-то универсальное на все случаи жизни.
Блин, ты как продавец говоришь... совсем невкусно.
если у тебя есть варианты, то предложи: вот такой случай - вот так то, вот такой случай - вот так.

я же не вижу ни универсальных, ни частных хороших решений.
поэтому и спрашиваю.

Цитата:
Сообщение от gl00mie Посмотреть сообщение
Под такие требования подходит вариант, реализованный в 12-ке для разноски журналов ГК с распараллеливанием в пакетном режиме. Там аналогично попытались соблюсти баланс между распараллеливанием разноски и накладными расходами, связанными с большим числом пакетных задач.
Суть подхода в том, что есть "сборщик" условных пачек, которому по одному за раз подаются элементы (журналы для разноски или сообщения в нашем случае). Сборщик принимает решение, добавить очередной элемент в текущую пачку или же завершить ее формирование и добавить очередной элемент уже в новую пачку. В случае журналов ГК сборщик смотрит на суммарное количество строк журналов в текущей пачке - эти журналы будут последовательно разноситься в одной пакетной задаче. В случае пакетирования сообщений сборщик может смотреть на суммарный размер сериализованных сообщений в текущей пачке с учетом ограничения на размер буфера и условного размера закрывающих XML-тегов для пачки. Такой подход обычно работает более гибко, чем грубое поштучное деление сообщений на пачки.
ну... чтобы так сделать, нужно знать как оно работает внутре.
для этого придется кодить транспортный уровень вручную.

WCF в вопросе звучит для того, чтобы напомнить,
что бывают технологии которые скрывают внутреннюю кухню транспортного уровня.
снаружи мы работаем с типизированными объектами. а как оно сериализируется, как сжимается, на какие пачки делится - не знаем. Да и не хотим знать, если честно.

Цитата:
Сообщение от gl00mie Посмотреть сообщение
Асинхронным я называю обмен, который позволяет системе-отправителю не ждать ответа системы-получателя (этот ответ при необходимости может быть получен в другое время)
а... понятно.

обрати внимание, что в вопросе используется слово "передать", а не слово "обмен". в вопросе НЕТ ни слова о ждать.

ты как Vadik. только он постоянно говорил что данные должны "запрашиваться" вместо "передаваться".

Ребяты, пожалуйста, прочтите вопрос в самом начале темы.

Ребяты, пожалуйста, не предполагайте, что кто-то забыл об ответах и подтверждениях о приеме данных. Просто вопрос данной темы:

как правильно передать 100500 элементов коллекции через WCF или любой другой брокер в ax2012,ax2009?
__________________
полезное на axForum, github, vk, coub.