150 スレッドの Apache HttpComponents を使用して、約 5000 の異なる URL の HTML ソース コードをダウンロードしています。
URL はLinkedBlockingQueue
、SourceGetterThreads
可能な場合はキューから取得されます。次に、スレッドが を使用してソース コードをダウンロードしようとしますEntityUtils.toString(HttpClient.execute().getEntity)
。次に、HTML ソース コードの文字列表現が別LinkedBlockingQueue
のキューに配置されます。そこでは、2 番目のキューから取得したソース コードに対して有用な作業を実行する準備ができているさらに 10 個のスレッドがあります。
私の問題は、ソース コードで実行されている作業に誤りがあることに気付いたことにあります。Matcher
特定のパターンを照合し、見つかったパターンを記録するために使用しています。ただし、ソース コードが正しくなく、URL と一致しない場合があります (つまり、Java メモリに保存されたソース コードが、Chrome または FireFox で表示したときのソース コードと同じではありません)。これはランダムに見えるため、ソース コードが正しい場合と正しくない場合があります。
これがなぜなのか誰か知っていますか?