Comments (11)
Я считаю, что добавлять это в текущую библиотеку - плохая идея. Если нужно будить 1С по HTTP - каждый сам может написать микросервис на любом языке, подписать его на очередь RabbitMQ и делать всё, что угодно с 1С через HTTP. А PinkRabbitMQ должна работать исключительно с RabbitMQ и не более того.
from pinkrabbitmq.
Идея интересная. Я попробую ее реализовать. Конечно есть и именусы такого подхода:
- необходимость модифицировать метаданные 1С.
- http намного медленее работает чем прямой вызов сообщения компоненты
from pinkrabbitmq.
Можно описание подробнее, не у всех есть доступ к форуму...
from pinkrabbitmq.
@MinimaJack
Цитирую предложение с партнерского форума
"Вы не рассматривали написание прослойки для обмена вашей компоненты с 1С через её http-сервисы (вместо пулинга очереди в цикле)? Например, компонента поднимает прокси и начинает слушать кроля с одной стороны и общаться с 1С с другой (или использовать её http-сервис как push-уведомление)."
from pinkrabbitmq.
Спасибо.
Идея так себе - теряется смысл в компоненте, так можно и сообщения push-ить в сервис из прослойки.
from pinkrabbitmq.
@MinimaJack Нет не теряется, http работает медленнее AMQP (и медленная установка соединения), т.е. тут предложение именно в том, чтобы использовать http-сервис только для того, чтобы "разбудить" 1С (сказать ей что пришли сообщения), а дальше 1С уже через компоненту по протоколу AMQP начинает их массово и параллельно забирать (а отправка так и остается через компоненту).
Т.е. это всего-лишь средство не держать в 1С все время активное соединение которое слушает кролика, а "будить" 1С по внешнему событию
from pinkrabbitmq.
@Begemoth2 Что делать если будет приходить много сообщений?? Спамить 1С вызовами? Как контролировать что данные из очереди все еще забираются регл.заданием? Что делать тем у кого все на поддержке?Кто будет мониторить http-демон? Зачемммм....
Установка соединения что http, что amqp - практически идентична, большая часть времени сожрет tcp-layer.
Весь смысл в backpressure и pull-подходе, когда данные забираются с той скоростью с которой могут быть обработаны. А так получится дикая смесь: ни то, ни сё.
p.s. Текущие сервера без особых проблем переваривают поддержание десятки тысяч активных соединений.
p.p.s Как по мне решается надуманная проблема...
from pinkrabbitmq.
@MinimaJack При текущем подходе (который реализован в компоненте) для того, чтобы новые сообщения приходили быстро (сразу после появления в очереди) на сервере 1С должен постоянно висеть сеанс (например фонового задания) в котором выполняется ожидание в методе BasicConsumeMessage (как только сообщение приходит, оно получается и управление передается в код 1С).
Этот подход (вечно висящее соединение) приводит к определенным проблемам, как минимум конфигурацию сложно обновлять ;-)
Тут речь о том, как можно эту проблему обойти. Понятно, что предложенный подход не идеальный (и мы пока так делать не планируем), но задачу записали (как возможные вариант решения)
from pinkrabbitmq.
@dobromyslov прав, можно сделать свою реализацию сервиса, который будет уведомлять или даже передавать сообщения из системы очередей в 1С.
Если кому известны такие решения, интересно ознакомиться.
В целом, подход PULL обоснован, но, как всегда, есть пограничные случаи, когда PUSH очень нужен.
from pinkrabbitmq.
Нашёл возможное решение https://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#first-steps
from pinkrabbitmq.
Не актуально в рамках компоненты. Закрываю
from pinkrabbitmq.
Related Issues (20)
- Сборка компоненты v2.1.0.59 под Linux на Ubuntu 18 HOT 1
- Добавить метод sleep
- В планах есть релизавать методы по работе по протоколу WebSocket.
- Ошибка при возникновении AMQP server timeout error HOT 3
- BasicConsumeMessage ожидает сообщение ровно столько, сколько установлен timeout
- Падение процессов сервера 1с при работе с компонентой HOT 8
- Тип не определен "AddIn.BITERP.PinkRabbitMQ" HOT 5
- Есть какое-то ограничение на длину ключа маршрутизации? HOT 2
- Количество сообщений в очереди HOT 2
- В чём отличие версий? HOT 2
- Подскажите как установить свойства сообщения
- Поведение компоненты при сбоях связи с сервером RabbitMQ
- Проблема с методом Connect. Перезагрузка сервера.
- Получение сообщений из очереди с типом quorum HOT 2
- Как узнать ответ Кролика на отправку сообщения в очередь? HOT 3
- Работа со свойствами AppId, ContentType, UserId, ContentEncoding HOT 2
- Вылет платформы на больших сообщениях
- Вылет платформы при загрузке большого числа сообщений
- Падение платформы при обрыве соединения отправки
- Аварийное завершение BasicConsumeMessage
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from pinkrabbitmq.