txpostgres: отложенный экземпляр не имеет атрибута addCallBack
Я хочу использовать асинхронное соединение с базой данных postgres для вставки поступающих в реальном времени данных. Я использую Twisted для связи по TCP, и я даю txpostgres шанс для взаимодействия с базой данных. Я получаю странное сообщение, когда пытаюсь добавить обратный вызов для моей асинхронной вставки. Вот мой код:
try:
conn = txpostgres.ConnectionPool(50,params)
d = conn.start()
def save_conn(c):
self.list_cnx.append(c)
print str(c),"Connect OK"
def print_err(m):
print m
d.addCallbacks(lambda _: save_conn(conn),lambda __: print_err('Connect NO'))
except Exception as e:
print "Cannot connect to database!!"
Я добавляю ссылку на пул соединений в список для будущего запроса.
def insert_data(self,dic):
try:
insArRq="""INSERT INTO test_pool(date_msg, msg) VALUES ('%s','%s')"""%(dic['date'],dic['msg'])
for c in self.list_cnx:
def insert_finich():
print "insert finich"
def insert_error():
print "insert error"
d = c.runOperation(insArRq) # return a deferred as mentioned in the documentation
print d # for debug
d.addCallBack(insert_finich) # error mesage
except Exception as ee:
print "Insert error : ",ee
Когда я пытаюсь добавить функцию обратного вызова для deferred, возвращенного runOperation, появляется эта ошибка:
<Deferred at 0x8d9782c waiting on Deferred at 0x8d9786c>
Insert error : Deferred instance has no attribute 'addCallBack'
и иногда:
<Deferred at 0x8d97a0c>
Insert error : Deferred instance has no attribute 'addCallBack'
Помогите мне, пожалуйста, я новичок в отложенных понятиях, так что я думаю, что что-то упустил. Спасибо