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

Может кто-то пробовал работать с 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:

<logger name="GrayLogLogger" writeTo="grayLogAppender" minlevel="Debug" final="true" />

nlog.targets

<extensions>
        <add assembly="Nlog.RabbitMQ.Target" />
    </extensions>
    <variable name="rmqHost" value="localhost" />
    <variable name="rmqUser" value="admin" />
    <variable name="rmqPassword" value="admin" />
    <variable name="rmqvHost" value="logs" />
    <variable name="rmqvPort" value="5672" />
    <variable name="rmqExchange" value="logs" />

<target name="grayLogAppender"
                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">
            <field key="threadid" layout="${threadid}" />
            <field key="machinename" layout="${machinename}" />

 

при перезапуске пула конект к 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.<ReconfigureAsync>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:

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

nlog.config.targets:

&lt;variable name="rmqHost" value="rabbithost" /&gt;
	&lt;variable name="rmqUser" value="logger" /&gt;
	&lt;variable name="rmqPassword" value="logger" /&gt;
	&lt;variable name="rmqvHost" value="logs" /&gt;
	&lt;variable name="rmqPort" value="5672" /&gt;
&lt;targets async="true"&gt;
  ...................................................
&lt;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" &gt;
		  &lt;field key="threadid" layout="${threadid}" /&gt;
		  &lt;field key="machinename" layout="${machinename}" /&gt;
 
&lt;/targets&gt;

Но почему то коннекта к 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.

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