Если вы спрашиваете, вызывается ли метод onTimer
в отдельном потоке для каждого ключа, то я почти уверен, что это не так. Таким образом, в этом случае вам потребуется асинхронно вызывать HTTP-вызов.
Но, если честно, я не думаю, что в общем случае стоит использовать функцию onTimer
для выполнения HTTP-вызовов. Я ничего не знаю о вашем сценарии использования, но я думаю, что вам следует рассмотреть возможность использования различных механизмов, таких как создание побочного вывода и затем использование оператора Flink Async
. Использование асинхронных вызовов внутри onTimer
может быть непростым делом, особенно если учесть такие вещи, как повторные попытки, тайм-ауты и возможные сбои.
Таким образом, в соответствии с комментарием, сценарий использования состоит в том, чтобы сделать вызов для обслуживания каждые X минут и тогда опубликуйте что-нибудь в Кафке. Итак, что вы можете сделать, это просто иметь функцию процесса, которая планирует таймеры. При каждом срабатывании таймера вы генерируете некоторую выходную запись с данными, необходимыми для запроса, если есть какие-либо данные. Затем вы используете оператор Async
, чтобы фактически выполнить запросы, проанализировать ответ и на основе ответа сгенерировать некоторую выходную запись, которая затем может быть сохранена в Kafka.