J'ai implémenté une méthode HTTP Spring Boot pour permettre à 5 000 abonnés d'accéder à n'importe quel compte Twitter.Twitter4j - AsyncTwitter: Associer la réponse dans le TwitterListener à la demande d'ouverture
Dans le backend, d'abord, je suis en train de récupérer le Ids 5000 suiveur avec
IDs ids = twitter.getFollowersIDs(username, -1);
Après cela, je partagerai les 5000 ids en morceaux de 100.
Puis, je me sers AsyncTwitter à envoyer plusieurs requêtes HTTP "lookupUsers" à Twitter de façon asynchrone et mettre le thread en pause avec LOCK.wait();
Puis, avec la méthode d'écoute suivante:
@Override
public void lookedupUsers(ResponseList<User> users)
je lis chaque réponse et ajouter la liste des utilisateurs retourné dans une propriété de type « followerAccounts ». En fin de compte, lorsque je récupère toutes les réponses, je débloque le thread principal avec LOCK.notify() et je renvoie le "followerAccounts" en réponse à la méthode HTTP. Le problème est que lorsque deux utilisateurs externes appellent simultanément la même méthode HTTP de printemps, il n'y a aucun moyen de vérifier dans TwitterListener quelle méthode de recherche est utilisée pour les deux requêtes HTTP auxquelles elle fait référence.
Existe-t-il un moyen d'obtenir par ex. certains en-têtes de la réponse HTTP Twitter à l'intérieur de la méthode ViewedupUsers (utilisateurs ResponseList) ou n'importe quel moyen de transmettre des paramètres qui indiquent en quelque sorte la requête "lookupUsers" liée à la réponse?
Je ne veux pas synchroniser ma méthode HTTP, car elle ne prend pas en charge un grand nombre de requêtes parallèles.
Il me semble que ce que vous appelez le "thread principal" est en fait le fil commencé avec la requête HTTP ... Je ne vois pas comment il peut être mélangé avec les autres demandes ... Peut-être que je n'ai pas Je vous comprends bien. En tout cas, mettre un fil en pause ne me semble pas bien. – Fernando