сделать кеш, в который будет сбрасываться информация и по истечению 1 сек или при достижении 1000 записей эти данные должны передаваться средством http запроса.
Я думаю сделать так:
Через fiber создать демона, который из memtx будет брать данные каждую секунду и скидывать их используя http_client_object:request(). А также при вставке записи вести учет кол-ва записей и при достижении 1000 скидывать их используя http_client_object:request(). Меня беспокоит то, что каждая функция в тарантуле является атомарной операцией, а http запрос может обрабатываться 2 и более секунд, то есть демон 1 раз в секунду отправляет, а некоторые запросы могут выполняться более 2-х сек. Получается, что остальные запросы будут ждать и это всё будет накапливаться. Что же делать в таком случае? можно ли как-то решить эту проблему?
ну тут больше наверно надо думать в сторону очередей, а не кэша
Может я не понял исходные данные, но что мешает на запросы отдельный файбер иметь?
Обсуждают сегодня