Se você realmente precisar fazer essa chamada de API para cada usuário periodicamente, eu configuraria de maneira diferente:
- Adicione duas colunas à sua tabela:
lastUpdatedeisBeingProcessed(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
lastUpdatedmais antigo data e que não está sendo processado e defina oisBeingProcessedsinalizador; - À medida que cada chamada de API for concluída, atualize as informações do usuário, incluindo o
lastUpdateddata ou hora de desarmar oisBeingProcessedsinalizador;
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.