C TCP Server + LibEvent
Добрый день. Имеем:
1-ый поток — TCP сервер на Си с LibEvent;
2-ой поток — обработка очередей и отправка обработанных данных на другой сервер.
Сишный сервер принимает сообщения от неких устройств и обрабатывает их (грубо говоря, каждое устройство имеет свой уникальный идентификатор), дальше складывает их в очередь (queue.h
).
Второй поток в постоянном цикле смотрит на наличие данных в очереди и, если они есть, передаёт их в сторонний сервис и ждёт от него ответа: либо просто "OK\r\n", либо, если есть для данного устройства сообщения, отправляет их обратно в сишный сервер.
Так вот вопрос: как лучше реализовать отправку сообщений, полученных от стороннего сервиса устройству?
Как вариант, отправлять сообщения на сторонний сервис в ф-ции колбеке приёма сообщения либэвента (не складывая их в очередь), но это мне кажется не совсем рациональным.
Кто-нибудь реализовывал подобное? Кто что может подсказать?