2016-10-26 3 views
0

파이썬 스크립트를 사용하여 MongoDB 프라이 머리를 단계적으로 축소하려고합니다. 아래 내용은 내 출력에서 ​​볼 수 있습니다. 종료 코드를 OK로 표시 할 수있는 방법이 있습니까?rs.stopDown using pymongo

코드 :

if 'primary' in isMaster: 
     primary =(isMaster['primary']).split(':')[0] 
     conn = pymongo.MongoClient('mongodb://'+ primary +':10000 replicaSet=test-ipe1') 
     stepdown = conn.admin.command("replSetStepDown",100) 
     if 'ismaster' in isMaster == 'true': 
      print("I am still the primary") 
     else: 
      print("I am no longer the primary") 
    else: 
     primary = "No primary currently elected." 

역 추적 :이 퇴임 할 때

from pymongo.errors import AutoReconnect 

try: 
    stepdown = conn.admin.command("replSetStepDown",100) 
except AutoReconnect: 
    pass 

차 의도적으로 즉시 모든 연결을 닫습니다, 그래서 명령은 예외 :

Traceback (most recent call last): 

File "./repldown.py", line 39, in <module> 
    stepdown = conn.admin.command("replSetStepDown",60) 

File "/usr/local/lib64/python2.6/site-packages/pymongo/database.py", line 391, in command 
    result = self["$cmd"].find_one(command, **extra_opts) 

File "/usr/local/lib64/python2.6/site-packages/pymongo/collection.py", line 604, in find_one 
    for result in self.find(spec_or_id, *args, **kwargs).limit(-1): 

File "/usr/local/lib64/python2.6/site-packages/pymongo/cursor.py", line 904, in next 
    if len(self.__data) or self._refresh(): 

File "/usr/local/lib64/python2.6/site-packages/pymongo/cursor.py", line 848, in _refresh 
    self.__uuid_subtype)) 

File "/usr/local/lib64/python2.6/site-packages/pymongo/cursor.py", line 782, in __send_message 
    res = client._send_message_with_response(message, **kwargs) 

File "/usr/local/lib64/python2.6/site-packages/pymongo/mongo_client.py", line 1051, in _send_message_with_response 

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

답변

2

예는, 할 예외. 그냥 무시하고 계속하십시오.

+1

@monicak 필요한 것 외에 다른 것이 있습니까? 아니면이 대답을 수락 하시겠습니까? –