Вопрос

Коллеги, добрый день!

 

Может кто-то пробовал работать с RabbitMQ.

Поделитесь, пожалуйста, инструкцией по подключению к RabbitMQ в Creatio

 

Подскажите, пожалуйста, возможно ли забирать данные из очередей бизнес-процессом? Можно ли отправлять данные в очередь RabbitMQ из Creatio?

Нравится

1 комментарий

Добрый день,

 

Что касается самого RabbitMQ, его вам необходимо разворачивать самостоятельно. Вы можете воспользоваться документацией: https://www.rabbitmq.com/docs/download.



Пример подключения к RabbitMQ вы можете найти в статье: https://academy.creatio.com/docs/8.x/setup-and-administration/on-site-d…, а именно последний пунк:

messageBroker manages the interaction with the RabbitMQ service. Fill out this parameter only if you need to set up the horizontal load scaling using RabbitMQ.



<add name="messageBroker" connectionString="amqp://[MessageBroker username]:[Password] @[Address of the server where the service is deployed]/[Virtual server name]" />



Что касается забирания данных из очередей бизнес-процессом и отправления данных в очередь RabbitMQ, то это является возможным. Однако, у нас нет примера такой реализации. 

Показать все комментарии

Коллеги, добрый день!

Может кто-то пробовал работать с RabbitMQ. Подскажите, пожалуйста, возможно ли забирать данные из очередей бизнес-процессом? Можно ли отправлять данные в очередь RabbitMQ из Creatio?

https://marketplace.terrasoft.ua/app/rabbitmq-connector-creatio

Нравится

2 комментария

не работал, но если можно с помощью с# то можно и с помощью бп, элемент скрипт и в бой

Делали, но в то время, когда ещё коннектора не было. Позднее могу поискать примеры 

Показать все комментарии

Здравствуйте. Вопрос по коннектору

RabbitMQ connector for Creatio | Creatio Marketplace (terrasoft.ru)

В полях для коннекта присутствует только поле host, но отсутствует поле virtualhost. И никак не удается добиться сигнала "Подключено". У кого-нибудь получалось добиться подключения? Или может сам Алексей подскажет, как можно это сделать? 

Например, в Loyalty поле VirtualHost присутствует.

Нравится

0 комментариев
Показать все комментарии

Всем доброго времени суток!

Столкнулся со следующей проблемой.

Кейс такой нужно писать логи через NLog в очереди RabbitMQ.

Для этого использую библиотеку Nlog.RabbitMQ.Target.dll

Добавляю ее в папку MyApp\bin\ 

Затем настраиваю файлы nlog.config:

nlog.targets



        

    

    

    

    

    

    

    

                xsi:type="RabbitMQ"

                appid="CreatioDemo"

                topic="${uppercase:${level}}"

                username="${rmqUser}" 

                password="${rmqPassword}" 

                hostname="${rmqHost}" 

                exchange="${rmqExchange}"

                exchangeType="topic"

                port="${rmqvPort}"

                vhost="${rmqvHost}"

                layout="${Date} [${ThreadIdOrName}] ${uppercase:${level}} ${UserName} ${MethodName} - ${Message}"

                messageSource="nlog://${machinename}/${logger}"

                useJSON ="true">

            

            

 

при перезапуске пула конект к Rabbit создается но логи не пишуться.

Для этого нужно добавить Nlog.RabbitMQ.Target.dll в папку MyApp\Terrasoft.WebApp\bin\

И тут возникает проблема при перезапуске пула или при логине в систему:

Изображение удалено.

[FileLoadException: Could not load file or assembly 'System.Threading.Tasks.Extensions, Version=4.2.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. The located assembly's manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040)]

   StackExchange.Redis.PhysicalConnection.BeginConnectAsync(LogProxy log) +0

   StackExchange.Redis.PhysicalBridge.GetConnection(LogProxy log) +461

   StackExchange.Redis.ServerEndPoint.CreateBridge(ConnectionType type, LogProxy log) +98

   StackExchange.Redis.ServerEndPoint.GetBridge(ConnectionType type, Boolean create, LogProxy log) +60

   StackExchange.Redis.ConnectionMultiplexer.ActivateAllServers(LogProxy log) +195

   StackExchange.Redis.d__142.MoveNext() +7816

[AggregateException: One or more errors occurred.]

   System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) +4593189

   System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken) +13992992

   StackExchange.Redis.ConnectionMultiplexer.ConnectImpl(Object configuration, TextWriter log) +220

   Terrasoft.Redis.StackExchangeAdapters.RedisClientsManagerAdapter..ctor(String connectionStringName, RedisConfigSection configSection) +273

 

Проверил версию  System.Threading.Tasks.Extensions в сборке Nlog.RabbitMQ.Target.dll  и ту что используется в Ceratio - совпадают.

Подскажите как можно это исправить?

Нравится

1 комментарий

Алексей, добрый день!

Исходя их ошибки попробуйте перезапустить redis.

Поскольку на данный момент система не поддерживает внедрение Nlog.RabbitMQ.Target.dll, то более детальной рекомендации мы дать не можем. Советую ознакомиться с этим обсуждением.

Показать все комментарии

Всем доброго времени суток!

Стоит задача отправлять логи в RabbitMQ

Установил библиотеку Nlog.RabbitMQ.Target в файлы nlog.config и nlog.config.targets добавил необходимые настройки:

nlog.config:

<?xml version="1.0" encoding="utf-8"?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" autoReload="true" throwExceptions="false" >
	<include file="nlog.targets.config" />
	<extensions>		
		<add assembly="Nlog.RabbitMQ.Target" />
	</extensions>
<rules>
<logger name="*" minlevel="Debug" writeTo="RabbitMQTarget" />
	</rules>

nlog.config.targets:

<variable name="rmqHost" value="rabbithost" />
	<variable name="rmqUser" value="logger" />
	<variable name="rmqPassword" value="logger" />
	<variable name="rmqvHost" value="logs" />
	<variable name="rmqPort" value="5672" />
<targets async="true">
  ...................................................
<target name="RabbitMQTarget"
            xsi:type="RabbitMQ"
            appid="NLog.RabbitMQ.DemoApp"
            correlationId=""
            messageType=""
            topic="DemoApp.Logging"
            username="${rmqUser}"
            password="${rmqPassword}"
            hostname="${rmqHost}"
            exchange="logs"
            exchangeType="topic"
            routingKey="logs"
            messageSource="nlog://${machinename}/${logger}"
            DeliveryMode="NonPersistent"
            port="{rmqPort}"
            vhost="${rmqvHost}"
            useJSON ="true" >
		  <field key="threadid" layout="${threadid}" />
		  <field key="machinename" layout="${machinename}" />
 
</targets>

Но почему то коннекта к Rabbit нет

 

Создал проект web API

добавил эти же настройки - коннект есть логи в очередь уходят.

Подскажите что делаю не так, может есть какие то нюансы?

Благодарю.

Нравится

4 комментария

Нигрескул Алексей, добрый день!

Связка RabbitMQ с логами не тестировалась. 

Возможно стоит подключать RabbitMQ через файл ConnectionStrings.config, параметр messageBroker.

Пример настройки указан этой статье (для PostgreSQL):

https://academy.terrasoft.ru/docs/user/razvertyvanie_onsite/windows_net…

Sorotiuk Anna,

здравствуйте! Нет, в библиотеке Nlog.RabbitMQ.Target уже реализовано подключение к Rabbit, настройки подключения передаются через файл NLog.config

Sorotiuk Anna,

подскажите какая версия библиотеки NLog используется в Creatio 7.18.3

Нигрескул Алексей, добрый день!

Для версии 7.18.3 версия библиотеки Nlog - 4.6.5

Показать все комментарии

Добрый день!

На чистую коробочную версию Creatio 7.16.1.2135 SalesEnterprise_Marketing_Services было установлено приложение из маркетплейс - RabbitMQ connector for Creatio - https://marketplace.terrasoft.ru/app/rabbitmq-connector-creatio. Установка прошла без ошибок. Никаких доработок в конфигурации не выполнялось. При открытии страницы настроек коннектора следующие ошибки в консоли:

Изображение удалено.



Разработчик на письма не отвечает. Есть какие-то идеи как исправить ошибку и заставить приложение работать?

Нравится

2 комментария

Здравствуйте!

На скрине видно, что у Вас не заполнены параметры подключения к Rabbit. Хост, Пользователь, пароль. Эти доступы должны быть к серверу Rabbit - https://prnt.sc/1qm5ndf

Спасибо, Алексей, что откликнулись.

Но ошибки появляются сразу при открытии, еще до ввода любых значений, что странно. В консоли -

    response status: 400 (Bad Request)

    request url: http://localhost:160/0/rest/AnvRabbitConnectionService/Load

Если же ввести верные значения и попробовать сохранить, то появляются другие ошибки:







При этом данные верные, окно RabbitMQ в браузере открывается и нормально в авторизуется с тем же логином и паролем:





 

Показать все комментарии

Всем доброго времени суток. Подскажите есть ли возможность у bpm'online интегрироваться с RabbitMQ, а именно подписываться на сообщения?

Благодарю.

Нравится

1 комментарий

Как минимум, в механизме глобального поиска он используется. Нужно смотреть документацию по этому ПО, как устроены стандартные библиотеки для взаимодействия с ним, есть ли они под JS и C# и можно ли ими воспользоваться в конфигурации bpm'online.

Показать все комментарии