Отправить сообщение GRPC
Отправляет очередное сообщение в клиентский или двунаправленный поток
- Параметры
- Расширенный вызов ?
Функция ОтправитьСообщениеGRPC(Знач Соединение, Знач IDПотока, Знач Запрос, Знач Сессия = Неопределено, Знач ОжидатьСледующее = Ложь) Экспорт
| Параметр | CLI опция | Тип | Обяз. | Назначение |
|---|---|---|---|---|
| Соединение | - | Произвольный | ✔ | Объект соединения GRPC |
| IDПотока | - | Строка | ✔ | Идентификатор потока |
| Запрос | - | Структура Из КлючИЗначение | ✔ | Данные запроса. См. ПолучитьНастройкиЗапроса |
| Сессия | - | Структура Из КлючИЗначение | ✖ | Настройки сессии. См. ПолучитьНастройкиСессии |
| ОжидатьСледующее | - | Булево | ✖ | Флаг ожидания следующих сообщений после текущего |
Возвращаемое значение
Соответствие Из КлючИЗначение - Результат обработки
Для текущего метода нет дополнительных параметров расширенного вызова.
Предупреждение
NOCLI: данный метод недоступен для использования в CLI версии
Пример использования для 1С:Предприятие/OneScript
URL = "http://localhost:9101";
Логин = "bayselonarrend";
Пароль = "12we...";
Авторизация = Новый Структура(Логин, Пароль);
НастройкиСоединения = OPI_ClickHouse.ПолучитьНастройкиСоединенияGRPC(URL, Авторизация);
Соединение = OPI_ClickHouse.ОткрытьСоединениеGRPC(НастройкиСоединения);
Результат = OPI_ClickHouse.ОткрытьПотокGRPC(Соединение);
Если Не Результат["result"] Тогда
ВызватьИсключение Результат["error"];
Иначе
IDПотока = Результат["streamId"];
КонецЕсли;
ТекстЗапроса = "INSERT INTO events_stream_test FORMAT JSONEachRow";
ФорматДанных = "JSON";
ТекущаяДата = Дата("20260101100000");
Счетчик = 0;
Пока Счетчик < 5 Цикл
Запись = Новый Структура;
Запись.Вставить("id" , Счетчик + 1);
Запись.Вставить("timestamp" , ТекущаяДата);
Запись.В ставить("user_id" , 100 + Счетчик);
Запись.Вставить("event_type" , "stream_test");
Запись.Вставить("payload" , "{}");
Запись = OPI_Инструменты.JSONСтрокой(Запись) + Символы.ПС;
Последнее = Счетчик = 4;
Если Счетчик = 0 Тогда
Запрос = OPI_ClickHouse.ПолучитьНастройкиЗапроса(ТекстЗапроса, "default", , Запись, ФорматДанных);
ТекущаяОтправка = OPI_ClickHouse.ОтправитьСообщениеGRPC(Соединение, IDПотока, Запрос, , Не Последнее); // <---
Иначе
ТекущаяОтправка = OPI_ClickHouse.ОтправитьДанныеGRPC(Соединение, IDПотока, Запись, Не Последнее);
КонецЕсли;
Если Не ТекущаяОтправка["result"] Тогда
Ошибка = ТекущаяОтправка["error"];
Если Ошибка <> "Timeout" Тогда
ВызватьИсключение OPI_Инструменты.JSONСтрокой(ТекущаяОтправка);
КонецЕсли;
КонецЕсли;
Счетчик = Счетчик + 1;
КонецЦикла;
Результат
{
"result": true,
"streamId": "e73cc180-c082-4177-80de-25512257e9fa"
}