MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Kesalahan saat mengambil Tweet dengan Tweepy

IncompleteRead kesalahan umumnya cenderung terjadi ketika konsumsi tweet masuk Anda mulai tertinggal , yang masuk akal dalam kasus Anda mengingat daftar istilah yang panjang untuk dilacak. Pendekatan umum yang tampaknya diambil oleh kebanyakan orang (termasuk saya sendiri) hanyalah untuk menekan kesalahan ini dan melanjutkan koleksi Anda (lihat tautan di atas).

Saya tidak dapat mengingat sepenuhnya apakah IncompleteRead akan menutup koneksi Anda (saya pikir itu mungkin, karena solusi pribadi saya menghubungkan kembali aliran saya), tetapi Anda dapat mempertimbangkan sesuatu seperti berikut (Saya hanya akan melakukannya, mungkin perlu pengerjaan ulang untuk situasi Anda ):

# from httplib import IncompleteRead # Python 2
from http.client import IncompleteRead # Python 3
...
while True:
    try:
        # Connect/reconnect the stream
        stream = Stream(auth, listener)
        # DON'T run this approach async or you'll just create a ton of streams!
        stream.filter(terms)
    except IncompleteRead:
        # Oh well, reconnect and keep trucking
        continue
    except KeyboardInterrupt:
        # Or however you want to exit this loop
        stream.disconnect()
        break
...

Sekali lagi, saya hanya mengingkarinya di sana, tetapi moral dari cerita ini adalah bahwa pendekatan umum yang diambil di sini adalah untuk menekan kesalahan dan melanjutkan.

EDIT (10/11/2016): Hanya berita gembira yang berguna bagi siapa saja yang berurusan dengan volume tweet yang sangat besar - salah satu cara untuk menangani kasus ini tanpa kehilangan waktu koneksi atau tweet berarti memasukkan tweet yang masuk ke dalam solusi antrian (RabbitMQ, Kafka, dll.) untuk dicerna/diproses oleh aplikasi yang membaca dari antrian itu.

Ini memindahkan hambatan dari Twitter API ke antrean Anda, yang seharusnya tidak masalah menunggu Anda menggunakan data.

Ini lebih merupakan solusi perangkat lunak "produksi", jadi jika Anda tidak peduli tentang kehilangan tweet atau menyambungkan kembali, solusi di atas masih benar-benar valid.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Temukan beberapa nilai dalam koleksi mongodb?

  2. Bagaimana memproyeksikan indeks array setelah melepas array dengan kerangka kerja agregasi MongoDB

  3. Hasil kueri proyeksi Mongo bervariasi dari pengujian di aplikasi shell vs nodejs

  4. Spring Boot tidak dapat memperbarui koleksi sharded di Azure cosmos db (MongoDb)

  5. Hubungan MongoDB untuk objek