Se você realmente precisar fazer essa chamada de API para cada usuário periodicamente, eu configuraria de maneira diferente:
- Adicione duas colunas à sua tabela:
lastUpdated
eisBeingProcessed
(ou algo semelhante); - Crie um script que execute a cada X (1?) minutos usando cron;
- No seu script, obtenha os XX (10?) registros com o
lastUpdated
mais antigo data e que não está sendo processado e defina oisBeingProcessed
sinalizador; - À medida que cada chamada de API for concluída, atualize as informações do usuário, incluindo o
lastUpdated
data ou hora de desarmar oisBeingProcessed
sinalizador;
Dependendo do que o seu servidor aguenta e do que a API permite, você pode até configurá-lo para que vários jobs sejam executados simultaneamente/sobrepostos, reduzindo muito o tempo total para atualizar muito.