2015-04-21 16 views
9

Tôi đang viết mã python để cập nhật từng tài liệu trong bộ sưu tập. Mã của tôi cũng giống như:Cách xử lý pymongo.errors.AutoReconnect: kết nối đã đóng?

for r, d_50 in enumerate(grid50.find().batch_size(500)): 
    self_grid = grid50.find({'_id':d_50['_id']}) 
    ..... 
    ..... 
    (processing process) 
    grid50.update({'_id':d_50['_id']},{'$set':{u'big_cell8':{"POI":venue_count, "cell_ids":cell_ids}}}) 

Tuy nhiên, khi tôi chạy mã này, tôi gặp vấn đề:

raise AutoReconnect(str(e)) 
    pymongo.errors.AutoReconnect: connection closed 

Có ai biết làm thế nào để đối phó với vấn đề này? Tôi có nên thêm một cái gì đó trong mã của tôi để đối phó với điều này?

Trả lời

0

Từ PyMongo Docs -

ngoại lệ pymongo.errors.AutoReconnect (message = '', lỗi = Không)

Lớn lên khi một kết nối đến cơ sở dữ liệu bị mất và một nỗ lực để auto kết nối lại sẽ được thực hiện.

Để tự động kết nối lại, bạn phải xử lý ngoại lệ này, công nhận rằng hoạt động gây ra nó không nhất thiết phải thành công. Các hoạt động trong tương lai sẽ cố mở một kết nối mới tới cơ sở dữ liệu (và sẽ tiếp tục tăng ngoại lệ này cho đến khi kết nối thành công đầu tiên được thực hiện).

Về cơ bản bạn sẽ phải xử lý ngoại lệ này để ứng dụng kết nối lại với mongo và chạy lại chức năng không thành công.

Các vấn đề liên quan