 |
파이썬 마을 우리나라 파이썬 사용자들의 이야기 마을
|
|
| 이전 주제 보기 :: 다음 주제 보기 |
| 글쓴이 |
메시지 |
onlymg
가입: 올린 글: 212
|
올려짐: 2007 9월 27 3:10 pm 주제: connect(), settimeout() |
|
|
| 코드: | def __init__(self,localhost):
self.m_mutex = threading.Lock()
try:
self.m_cnn = pgdb.connect(database='aaa',host=localhost,user='aaa',password='aaa')
except:
try:
self.m_cnn = pgdb.connect(database='aaa',host='127.0.0.1:5432',user='aaa',password='aaa')
print 'error connect => connect my holic_log DB'
sleep(0.1)
except:
print 'error connect', sys.exc_type, sys.exc_value
self.m_cnn = None |
디비 연결할때 연결이 안되면 다른 디비로 다시 연결시도할려고 try except했습니다.
그런데 처음 연결할 때,
전제 : 연결이 안되게 해놓음...
연결이 되지 않기 때문에 계속 해서 연결을 시도하고 있는거 같습니다.
윈도우상에서는 그나마 오랜 시간을 끌지 않고 다른 디비 연결로 넘어가는데,
리눅스의 경우에는 거의 1분이 넘는 시간을 계속 디비 연결하려고 하는 거
같은데 이 연결시 일정 시간이 지나면 에러 처리하고 다른 디비로 바로 넘어가게
하려면 어떻게 해야 하나요?
일단 찾아본건
settimeout함수인데 이걸
| 코드: |
settimeout(1000)
self.m_cnn = pgdb.connect(database='aaa',host=localhost,user='aaa',password='aaa')
|
위와 같이 시도하면 연결이 되는 host를 붙여도 연결 안됐다고 나오고
타임아웃의 인자도 좀 길게 하거나 짧게 해도 시간은 같게 나오는군요...
connect함수를 건드릴 다른 방법이 있을까요? |
|
| 위로 |
|
 |
장혜식 사이트 관리자

가입: 올린 글: 1374
|
올려짐: 2007 9월 27 9:33 pm 주제: |
|
|
일반적인 DB-API를 쓰는 환경에서는 불가능합니다.
(아주 옛날에 asyncore기반 mysql 비동기 라이브러리나 postgresql 비동기
라이브러리에 대한 바인딩이 나온 적이 있었는데, 사용이 너무 힘들어서 대부분
포기하고 지금은 관리되지 않는 상태입니다.)
보통 Twisted Enterprise에서 쓰는 방법대로 데이터베이스 작업은 쓰레드로
분리시켜서 쓰는게 안전합니다. _________________ http://me2day.net/hyeshik |
|
| 위로 |
|
 |
onlymg
가입: 올린 글: 212
|
올려짐: 2007 9월 28 8:48 am 주제: 답변 감사합니다 |
|
|
답변이 없어서 답답했는데...
라이브러리 봐도 안나오고요... 음 이걸 어쩐다!
정말 감사합니다~ 좋은 하루 보내세요^.^ |
|
| 위로 |
|
 |
|
|
새로운 주제를 올릴 수 없습니다 답글을 올릴 수 없습니다 주제를 수정할 수 없습니다 올린 글을 삭제할 수 없습니다 투표를 할 수 없습니다
|
|