Имя: Пароль:
1C
1С v8
RabbitMQ - чтение очереди, ошибка при получении Headers.
,
0 NurSagen
 
30.09.21
12:22
Упрощенный код работы с RabbitMQ:

ФабрикаAMQP = Новый COMОбъект("имяКомпоненты Реббита");
Соединение = ФабрикаAMQP.CreateConnection();

Модель = Соединение.CreateModel();
Модель.QueueDeclarePassive(ИмяОчереди);

ДанныеОчереди = Модель.BasicGet(ИмяОчереди);

ПараметрыОчереди = ДанныеОчереди.BasicProperties(); // возвращает COMОбъектовскую структуру

И вот здесь проблемы:

В отладчике в "ПараметрыОчереди" - не видно свойства Headers, но если писать ПараметрыОчереди.Headers пишет - "Ошибка при получении значения атрибута контекста", то есть поле такое есть, но его нельзя прочитать почему-то..

Есть ли какие-либо альтернативные способы получения заголовков (Headers) сообщения из читаемой очереди?
1 Garykom
 
гуру
30.09.21
12:23
другая ВК
2 Garykom
 
гуру
30.09.21
12:24
как вариант rabbitmq-plugins enable rabbitmq_management и по http
3 NurSagen
 
30.09.21
12:24
(1) Дело во внешней компоненте?
4 Garykom
 
гуру
30.09.21
12:25
(3) ты какую юзаешь то?
5 NurSagen
 
30.09.21
12:26
(4) Не знаю, какую-то админы давно ставили, мне туда даже нельзя ходить
6 acht
 
30.09.21
12:26
(4) "Реббита" же. Испанка очевидно =)
7 Garykom
 
гуру
30.09.21
12:26
(5) ну так и свали траблу на одминов/девопс
попроси рабочий пример с Headers
8 acht
 
30.09.21
12:27
(5) Ты идентификатор создаваемого COM объекта зачем затер, не знающий?
9 NurSagen
 
30.09.21
12:28
(8) Ты про это - "RabbitMQ.Client.ConncetionFactory()"?
10 acht
 
30.09.21
12:28
(9) Я про ФабрикаAMQP = Новый COMОбъект("имяКомпоненты Реббита");
11 NurSagen
 
30.09.21
12:29
(10) ФабрикаAMQP = Новый COMОбъект("RabbitMQ.Client.ConnectionFactory");
12 Garykom
 
гуру
30.09.21
12:35
(11) хз где вы взяли этот COM объект
возможно нечто свое на основе https://github.com/rabbitmq/rabbitmq-dotnet-client/
13 mikecool
 
30.09.21
12:37
"то есть поле такое есть, но его нельзя прочитать почему-то.. " - значит получена не та коллекция, где это свойство доступно для чтения
14 acht
 
30.09.21
12:38
(11) Все вопросы к автору этой компоненты.

Если это типовая дотнетовская, то откуда уверенность, что все ее методы и свойства будут доступны через COM?
15 acht
 
30.09.21
12:41
(14)+ Теоритически там System.Collections.Generic.IDictionary<System.String, System.Object>,
попробуй через методы - .Items(...) там какой нибудь
16 NurSagen
 
30.09.21
12:43
Хорошо, а здесь есть те, кто прочитывал Headers из Rabbit-а?
Каким способом вы это делали?
Таким как я и у вас все работало, или как-то иначе?
17 acht
 
30.09.21
12:45
(16) > а здесь есть те

Ну начинается...
Да нет здесь никого, нет. Это же форум о политике и пользе утренней зарядки.
18 NurSagen
 
30.09.21
12:48
(17) я просто хотел спросить как вы получаете Headers, также как я или нет?
19 NurSagen
 
30.09.21
12:49
Я сам впервые с RabbitMQ работаю
20 Garykom
 
гуру
30.09.21
12:53
21 Garykom
 
гуру
30.09.21
12:54
(19) ну попробуй https://github.com/BITERP/PinkRabbitMQ
22 NurSagen
 
30.09.21
12:56
(21) Спасибо
23 Garykom
 
гуру
30.09.21
12:59
(22) я не уверен что там есть что тебе надо
24 acht
 
30.09.21
13:02
(23) А я уверен, что там этого нет.
https://github.com/BITERP/PinkRabbitMQ/issues/46
25 Garykom
 
гуру
30.09.21
13:18
(24) ну вариант 3 можно ))
26 Necessitudo
 
01.10.21
09:08
(0) Если напишешь мне в телегу @necessitudo, то поделюсь прям готовой подсистемой для общения с Рэббитом в 1С.