Sincronização entre aplicações

Bom dia pessoal.

Quero sincronizar os dados do meu software com o Ifood.
Qual a melhor maneira de ficar “lendo” se chegou um pedido novo?

Por exemplo: um timer que faz uma requisição para a api a cada 1 segundo.

Ou existe uma maneira melhor?

Que tipo de aplicação você tem? Web, Java Swing, Electron, C++?

A grosso modo, um timer é sim o que você precisa, mas depende da tecnologia que está usando. Por exemplo, pra java, pode ter uma thread ou SwingWorker pra ficar fazendo as consultas em segundo plano. Em Web, também há threads (worker_threads no nodejs, por exemplo), e você pode usar ajax ou sockets pra atualizar o cliente.

Abraço.

Estou utilizando Flutter. Eu coloquei um timer com 1 segundo. Minha dúvida é se isso sobrecarrega a aplicação, por fazer muitas requisições.

Tem alguma restrição da parte do iFood? Se não, depende do que você precisa.

1 segundo acho um intervalo curto, pode ocorrer de a requisição anterior ainda não ter retornado (ex: lentidão temporária na rede) e uma próxima ser executada. E, a não ser que o volume de vendas seja alto (mais de 5 por minuto), acho desnecessário. Eu chamaria a próxima 30~60 segundos após a anterior retornar ou dar timeout, em vez de um intervalo fixo entre cada uma.

Do lado do Flutter, só confira como fica o processamento e uso de memória em longos períodos (rodando por 1 hora ou mais) para garantir que não está usando recurso demais. E, em vez de um timer, veja se não é mais viável usar um serviço em segundo plano, para a aplicação não ficar travada enquanto a requisição é processada.

Abraço.