|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
День добрый! Имеем ряд систем скидывающих данные в очередь, есть ли способ не по таймеру щупать очередь, а по событию(появление новой записи в очериди) сразу вычерпывать ее из очериди, если есть возможность дать ссылку на материал описфывющий данный процесс, буду признателен! Заранее СПАСИБО. ЗЫ сервер на винде и не хочется плождить службы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 10:43 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Mixon ЗЫ сервер на винде и не хочется плождить службы. Это ты хочешь чтобы кролик сам выполнял кастомный запрос на сиквеле? Я совсем не думаю что он это умеет. Что такого страшного в том чтобы "плождить" службы? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 13:31 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Mixon, для .NET реализуете подписку используя IBasicConsumer у потребителя есть событие Received, подписываетесь на него, тогда по мере поступлений сообщений в очередь будете получать уведомление. вообще в документации к зайцу все достаточно подробно изложено. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 13:31 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
felix_ff, вопрос же не про конкретную реализацию на C# ) Mixon не хочется плодить службы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 13:37 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Модератор: Mixon, а где здесь MS SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 13:50 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Критик, да я шарпы как пример привел, там же без разницы на чем будет реализован потребитель :) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 13:57 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
felix_ff да я шарпы как пример привел, там же без разницы на чем будет реализован потребитель :) На шарпе придется "плождить" службы, а в данном случае это неприемлимо. Может быть, как-то возможно засунуть это в сиквельный CLR, но тут я не знаток. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 14:18 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
fkthat, да бэкграундного клиента в CLR то засунуть можно, но только у сиквела есть особенность что он по своей хотелке может appdomain выгрузить, поэтому придется еще рисовать некую систему проверки работает ли клиент. имхо это лишний геммор на стороне сиквела, я бы как раз выносил обработчик очереди на отдельный хост в виде win-service ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 14:27 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Всем спасибо за участие! ЗЫ сервер на винде и не хочется * плодить службы. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 14:32 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Mixon Всем спасибо за участие! ЗЫ сервер на винде и не хочется * плодить службы. на винде без службы такая архитектура плохо выглядит ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 14:46 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
felix_ff я бы как раз выносил обработчик очереди на отдельный хост в виде win-service monstrU на винде без службы такая архитектура плохо выглядит ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 15:16 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Mixon, сделал пакет SSIS, читающий сообщения из очередей кролика посредством скрипт таска на C#, меня вполне устраивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 15:22 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
felix_ff, "может appdomain выгрузить" - даже static выгружает? Вроде бы не должен, иначе может нарушиться функционирование. Нет информации? ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 17:06 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Владислав Колосов, да он может выгружать даже static. обычно он это явно делает когда сталкивается с нехваткой памяти. я встречал такое поведение, при этом с этим боролись на уровне кода используя статический финализатор, последующую сериализацию в файл и загрузку сборки заново. но вот что будет если памяти даже на сериализацию хватать не будет я хз. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 17:18 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
felix_ff, Надеюсь, сборка будет загружена при первом обращении, но я не уверен. Пока что с проблемой не сталкивался. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 17:34 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Владислав Колосов, сборка загруженна то будет, но вот если вы к примеру в каком либо статическом объекте храните состояние, то без дополнительных манипуляций вы его так просто не восстановите. хотя если вы столкнетесь с проблемой что сиквел начал форсированно помечать домены для выгрузки, есть вероятность что проблема будет иметь некоторый растянутый во времени характер, и загрузка сборки при вызове методов сборку то загрузит, а сервер опять ее пометит для выгрузки. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2021, 18:07 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Утро доброе! У важаемые Модераторы, прошу перенести тему в раздел C#?WinForm. Я не много разобрался с получением данных из очереди, все хорошо кроме двух моментов: 1) Продукт, от которого я должен получать сообщения, не сильно утруждает себя организацией выделенных очередей для "Сущностей", они пошли по пути одна очередь на вход и одна очередь еа выход, из этого мы имеем следующию проблему, пока все сообщения не переберешь, не получешь интересующие тебя данные "Сущность"(хотя они оставляют служебные маркеры); 2) Из за первого пункта мне пришлось использовать подключение при котором я только читаю сообщения из очереди, отбираю интересующие меня и обрабатываю их и маркерую как прочитанные методом BasicAck , все хорошо до перезапуска, после повторного запуска я получаю доступ ко всем сообщениям в том числе и к которым применил метод BasicAck . Подскажите что я делаю не так? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 08:00 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Mixon, это очередь, а не массив. Из нее нельзя выбирать только нужные сообщения подобно изюму из булочки. Первое неподтвержденное сообщение означает, что все сообщения после него тоже не подтверждены. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2021, 10:37 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Mixon, Какие проблемы использовать одну точку обмена и кучу очередей? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2021, 03:52 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
felix_ff fkthat, да бэкграундного клиента в CLR то засунуть можно, но только у сиквела есть особенность что он по своей хотелке может appdomain выгрузить, поэтому придется еще рисовать некую систему проверки работает ли клиент. имхо это лишний геммор на стороне сиквела, я бы как раз выносил обработчик очереди на отдельный хост в виде win-service Сделать на SQLCLR + Service Broker-ский сервис и пусть он возбуждается время от времени и вызывает SQLClR-ную процедуру чтения и сброса в таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
25.12.2021, 21:36 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Ролг Хупин, У автора требование - "сразу". Ваш вариант же мало чем отличается от SSIS-пакета со скрипт-компонентом ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2021, 00:15 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Критик Ролг Хупин, У автора требование - "сразу". Ваш вариант же мало чем отличается от SSIS-пакета со скрипт-компонентом Для меня мой вариант лучше тем, что не нужен паровоз с SSIS. Но «Одному нравится арбуз, другому свиной хрящик.» Кроме того, требование "сразу" - очень размытое понятие. Видимо, автор уверен, что как только прилетает сообщение в очередь, так сразу шлется нотификация, т.е. прямо в режиме реального времени. Но если автор почитал документацию по RabbitMQ, покрутил примеры, то понял бы, что его поняти "сразу" в мире не существует. Далее: хорошо, пусть сразу забираются сообщения из очереди и пишутся в таблицу - пишутся тоже "сразу"? Видимо, автор считает, что SQL Server тоже прямо real-time обработчик. Что с записанными сообщениями дальше происходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2021, 12:40 |
|
Чтение данных из RabbitMQ и запись данных в таблицу SQL Server
|
|||
---|---|---|---|
#18+
Ролг Хупин, У SSIS перед кодом C# есть плюс в том, что некоторые полезные вещи там уже сделаны (например, логирование) либо легче сделать и поддерживать (трансформации, запись результатов). Проблема автора в другом: он хочет получать часть публикуемых сообщений. Это делается легко, если публикующая система шлет данные в обменник. В противном случае (публикация в очередь) получатель обязан обрабатывать все сообщения. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2021, 15:52 |
|
|
start [/forum/topic.php?fid=46&fpage=6&tid=1683973]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 187ms |
0 / 0 |