Utilisez un pool de threads ou un traitement distribué. Si une certaine donnée a été traitée, vous pouvez la marquer quelque part et l'écrire en temps réel, si elle échoue, vous pouvez recommencer depuis le début et filtrer les données terminées.
Vous pouvez également définir un délai d'attente, puis enregistrer les enregistrements ayant échoué séparément et utiliser une stratégie pour réessayer.
En écoutant votre ton, si vous souhaitez simplement traiter ces 1 million de données en une seule fois, au lieu d'utiliser ce programme pendant une longue période, vous devriez simplement et grossièrement ouvrir quelques processus supplémentaires, puis transmettre quelques paramètres au processus via la ligne de commande. Supposons que 10 processus soient ouverts, que chaque processus est responsable de 100 000 données et que les données responsables de chaque processus peuvent être distinguées selon des règles spécifiques. Par exemple, intervalle d'identification
Divisez 1 million de données en plusieurs parties, chaque thread traite une donnée et les données doivent être insérées par lots. Si la base de données a un index, il est préférable de le désactiver d'abord une fois toutes les données insérées. , l'index sera unifié. S'il s'agit d'Oracle, vous pouvez utiliser SQL Loader ou d'autres outils similaires pour insérer directement, en évitant l'utilisation d'Hibernate et autres.
Utilisez le pool de threads pour enregistrer le point de départ des données de chaque thread, puis commencez à lire les données. Il est recommandé d'utiliser la mise à jour par lots pour mettre à jour la table. L'interface API est appelée de manière asynchrone et la table est mise à jour lors de l'appel. . Si vous pensez que cette procédure est plus compliquée. Il est exécuté séquentiellement à l'aide de la table de mise à jour de la base de données appelée par l'interface API.
Utilisez un pool de threads ou un traitement distribué. Si une certaine donnée a été traitée, vous pouvez la marquer quelque part et l'écrire en temps réel, si elle échoue, vous pouvez recommencer depuis le début et filtrer les données terminées.
Vous pouvez également définir un délai d'attente, puis enregistrer les enregistrements ayant échoué séparément et utiliser une stratégie pour réessayer.
En écoutant votre ton, si vous souhaitez simplement traiter ces 1 million de données en une seule fois, au lieu d'utiliser ce programme pendant une longue période, vous devriez simplement et grossièrement ouvrir quelques processus supplémentaires, puis transmettre quelques paramètres au processus via la ligne de commande. Supposons que 10 processus soient ouverts, que chaque processus est responsable de 100 000 données et que les données responsables de chaque processus peuvent être distinguées selon des règles spécifiques. Par exemple, intervalle d'identification
Divisez 1 million de données en plusieurs parties, chaque thread traite une donnée et les données doivent être insérées par lots. Si la base de données a un index, il est préférable de le désactiver d'abord une fois toutes les données insérées. , l'index sera unifié. S'il s'agit d'Oracle, vous pouvez utiliser SQL Loader ou d'autres outils similaires pour insérer directement, en évitant l'utilisation d'Hibernate et autres.
Utilisez le pool de threads pour enregistrer le point de départ des données de chaque thread, puis commencez à lire les données. Il est recommandé d'utiliser la mise à jour par lots pour mettre à jour la table. L'interface API est appelée de manière asynchrone et la table est mise à jour lors de l'appel. . Si vous pensez que cette procédure est plus compliquée. Il est exécuté séquentiellement à l'aide de la table de mise à jour de la base de données appelée par l'interface API.