powered by simpleCommunicator - 2.0.36     © 2025 Programmizd 02
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Уведомить .exe приложение о входящем REST запросе
17 сообщений из 17, страница 1 из 1
Уведомить .exe приложение о входящем REST запросе
    #40106278
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
У меня есть rest сервис на NetCore, один из методов которого успешно кладёт некое задание в очередь.
И есть вторая половина - .exe файл, который должен обрабатывать некоторые записи из этой очереди.
Не могу придумать, как сделать уведомление этого .exe о том, что в очередь поступил новый запрос, и его бы надо обработать.

Спрашивать ежесекундно я не хочу.
В голову приходит только PostMessage в процесс .exe, но не понятно, как сделать его в вэб сервисе.
Кто нибудь делал что нибудь подобное ?
Есть ещё варианты уведомления ?
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106281
ShSerge
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,

А почему спрашивать ежесекундно не хотите? Оно в любом случае так и работает. В конце-концов, спрашивайте ежеминутно.
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106308
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B
некое задание в очередь.
на чём построена очередь необходимо угадать?
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106334
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B

Есть ещё варианты уведомления ?

А именованный event в ASP.NET можно создать?
Если можно - должно подойти.
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106338
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B,

начни использовать очередь тbпа rabbit, а не что то сделанное на коленке и таких проблем в архитектуре не будет
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106388
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор хочет post запрос сделать или я чего то не понимаю?
В чем проблема то?
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106398
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes
автор хочет post запрос сделать или я чего то не понимаю?
В чем проблема то?

Без ТС можно только предполагать, у меня сложилась такая схема:
[Клиенты]<->[Сервис]->[Очередь]<->[.exe]
Природа очереди не известна (файлы,СУБД, что-то доступное по http или чему-то подобному), ".exe" может читать очередь, но оповещения об изменении очереди нет, использовать периодический опрос очереди ТС не хочет, поэтому интресуется способом оповестить ".exe" о появлении нового задания.
Неизвестным также является физическое расположение ".exe" - на одном устройстве с сервисом они или нет, но раз была идея о PostMessage, скорее всего, на одном.
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106443
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
x1ca4064,

Да, всё верно.
Я хочу оповестить любым доступным способ .exe о том, что бы он начал что-то делать.
Может как то через activex ?

x1ca4064

А именованный event в ASP.NET можно создать?
Если можно - должно подойти.

Что это такое ?
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106444
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как оказалось, я ничего нового не придумал.
У меня вот такая архитектура.
Только как оповестить "backend component" о новом сообщении, если этот компонент - .exe ?
Поднять на нём http сервер ?
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106460
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B

Что это такое ?

Это объект синхронихации Windows, на WinAPI создается функцией CreateEventA или CreateEventW из Kernel32.dll. В .NET должны быть обертки над event'ами.
Если создаете именованный евент, то он будет доступен по имени всем приложениям (на данной WinStation или на всех, если у имени будет глобальный префикс).
Идея состоит в следующем: при добавлении в очередь, сервис переводит евент в сигнальное состояние, поток в exe ожидает сигнального состояние этого евента функцией WaitForXXX (или соответствующим методом обертки), забирает новое задание из очереди и возвращается в состояние ожидания.
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106462
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_B

Поднять на нём http сервер ?

Тогда логично и очередь реализовать в .exe
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106509
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пару лет назад, использовали rerdis под виндовс, в линуксе то это было как бы аксиоматично, а вот под виндой брали сомнения на счет устойчивости, да ничо, на циклах 20 мс. уже работает 2 года на ура и без сбоев
очередь создали в редиске, растянули ее горизонтално, гденить в осло запихиваем задание а в куалумпуре выгребаем на исполнение
ну это так образно, тут локалхост и тянуть не надо, да и горячий кеш под рукой, всешь серваку полегче
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106534
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Где-то в степи,
почему не RabbitMQ?
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106570
Фотография Где-то в степи
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vb_sub,
ну redis мы использовали как горячий фронт для postgres, держали там быстрые регистры, сам борокер уже была побочка -как бы довесок. хотя в данном случае выбрал бы ее, ну весит себе демоном есть пить не просит, придет время и состояния туда можно запихнуть или еще чо..
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106623
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как я понял, автору надо передать сигнал из одного приложения в другое на одном ПК.
Задача сама по себе сомнительная, так как проще использовать очереди сообщений, с точки зрения архитектуры.
Но если сильно хочется, то
1. можно использовать семафоры, можно будет передавать сигнал, делается на коленке за 5 минут, как сделать по хорошему, я не знаю, знаю только на коленке, но всё отлично работает. При этом передать данные можно через какой то неуправляемый ресурс типа файловой системы. Создайте 2 семафора в разных процессах, один будет ожидать в цикле, другой пропускать его.
https://docs.microsoft.com/ru-ru/dotnet/api/system.threading.semaphore?view=net-5.0
2. через именованные каналы, подробнее по ссылке
https://docs.microsoft.com/ru-ru/dotnet/standard/io/how-to-use-named-pipes-for-network-interprocess-communication

Но это всё колхоз, есть куча других способов для interprocess-communication
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40106636
vb_sub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по-моему здесь решений море
Приложение "A"-инициатор обработки(тот который кладет некое задание в очередь). Приложение "B"-обработчик заданий.
Делаешь "B" AspCore WebApi c одним контроллером и HttpGet Action, в котором лежит метод обработки сообщений.
Когда тебе из приложения А нужно сказать приложению B, чтобы он обработал задания, то просто посылаешь http-запрос через httpClient.
И в качестве транспорта выбирай, что больше нравится http, signalr,grpc.
...
Рейтинг: 0 / 0
Уведомить .exe приложение о входящем REST запросе
    #40110982
Ролг Хупин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если на одной машине можно сделать через Pipes на худой конец.
А по-хорошему - что-то типа RabbitMQ, или поставить локальный SQL Server и через Broker.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Уведомить .exe приложение о входящем REST запросе
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]