Sejak sistem SEOTcs memperbarui algoritma penilaian SEO pada tanggal 24 November, masalah yang mengganggu saya telah muncul. Kesalahan berikut akan sering dilaporkan selama pelaksanaan tugas pekerjaan data Java:
"03-12-2011 18:00:32 DefaultHttpClient [INFO] Pengecualian I/O (java.net.SocketException) tertangkap saat memproses permintaan: Koneksi disetel ulang oleh rekan: kesalahan penulisan soket
03-12-2011 18:00:32 DefaultHttpClient [INFO] Permintaan percobaan ulang”…
Untuk tujuan ini, saya mencari beberapa situs web dalam bahasa Mandarin dan Inggris, mencari di setiap sudut yang dapat saya temukan, dan menemukan alasan mengapa situasi ini terjadi. Pengecualian Java ini dapat terjadi pada sisi klien dan server dua alasan:
1. Jika Socket di salah satu ujungnya ditutup (atau ditutup secara aktif, atau ditutup karena keluar yang tidak normal), ujung lainnya masih mengirimkan data, dan paket data pertama yang dikirim memicu pengecualian ini (Connect reset by peer).
2. Salah satu ujung keluar, tetapi koneksi tidak ditutup saat keluar. Jika ujung lainnya membaca data dari koneksi, pengecualian (Reset Koneksi) akan dilempar. Sederhananya, hal ini disebabkan oleh operasi baca dan tulis setelah koneksi terputus.
Jadi saya hanya berpikir bahwa ini dapat diselesaikan dengan mengatur beberapa batas waktu soket:
Namun setelah diatur situasinya masih sama.
Masalah ini telah mengganggu saya selama beberapa hari, dan saya telah berpikir dan melakukan tes perbandingan setiap hari untuk mengetahui kode yang menyebabkan masalah ini. Saya tidak dapat berhenti berpikir, dengan premis jumlah kata kunci yang sama, mengapa tidak ada kesalahan pada data peringkat kueri batch sebelumnya, tetapi Kesalahan sering dilaporkan akhir-akhir ini. Apakah situs antarmuka yang diminta memblokir IP server kami? Alasan ini tidak cukup. Ini pasti disebabkan oleh kegagalan melepaskan koneksi dengan benar di suatu tempat dalam program!
Di bawah bimbingan ide ini, setelah beberapa hari kerja keras dan latihan terus menerus, hari ini saya akhirnya menemukan inti permasalahan yang disebabkan oleh metode pengatur waktu! Situasinya seperti ini. Dalam beberapa hari terakhir, saya telah memicu beberapa tugas batch secara manual dan menemukan bahwa ketika nilai peringkat filter adalah 100, kesalahan java.net.SocketException: Connection reset in java akan terus muncul, dan layar akan terus muncul. refresh sangat kuat, setelah membandingkan kode pengatur waktu ini dengan cermat
Akhirnya tiba-tiba saya sadar, ya! Ada masalah di sini, izinkan saya menganalisisnya sendiri:
Nilai fungsi, nilai yang dikembalikannya adalah nilai kritis, tetapi dalam metode pengatur waktu saya, dinilai bahwa jika nilai yang dikembalikan adalah nilai kritis, itu akan memaksanya untuk terus menjalankan metode tersebut dalam waktu 10 detik, dan metode ini adalah untuk Untuk mendapatkan data spesifik dari kode sumber dalam sebuah halaman, setiap eksekusi metode ini akan memakan waktu puluhan milidetik, yang setara dengan membangun Koneksi soket dibuat, tetapi karena selalu mengembalikan nilai kritis, metode ini akan terus membuat koneksi soket dalam waktu 10 detik untuk mendapatkan data. Jika metode ini dijalankan setiap kali, dibutuhkan sekitar 80 ms (setelah pengujian, setiap waktu eksekusi metode tersebut adalah sekitar 80 milidetik), dan dalam 10 detik, 10*1000/80 akan dibuat. = 125 sambungan soket, yaitu 12,5 sambungan soket akan dibuat per detik. Selain itu, karena ini adalah program pemfilteran, beberapa nilai kritis akan muncul bersamaan secara terus menerus untuk halaman website yang sama akan melonjak sangat tinggi, mencapai ratusan bahkan ribuan, sehingga menyebabkan jumlah permintaan koneksi yang menunggu untuk diproses menjadi terlalu tinggi:
Mengapa Anda menggunakan metode pengatur waktu ini untuk menjalankan suatu metode beberapa kali? Alasannya adalah untuk mendapatkan nilai data yang stabil. Namun jika dipikir-pikir, dampak negatifnya sangat merugikan dan efeknya tidak dapat diremehkan. , tetapi setelah beberapa hari analisis dan pengujian menyeluruh, pelakunya akhirnya ditemukan. Setelah masalah teratasi, pikiran saya tiba-tiba terasa lega dan saya bisa tidur nyenyak. . .