RT:
错误信息如下:
(IntegrityError) duplicate key value violates unique constraint "ix_cid"
下面是我生成cid的方法:
_cid_rlock = threading.RLock()
def generate_cid():
with _cid_rlock:
return long((time.time()-1377964800.000000)*1000000000)
但是经过我使用多线程测试,发现不太可能生成相同的id(测试代码见下)
应用用的是Flask,数据库层SQLAlchemy,Flask-SQLAlchemy插件(默认配置)
数据库postgresql 9.1.9
系统ubuntu 12.04.2
应用跑在 gunicorn 加gevent
gunicorn -k gevent app:app -w 2
在做提交的时候,直接用的是:
类似如下的代码:
db.session.execute(Story.__table__.insert(), story_values)
db.session.commit()
Google了一阵子了,还是没有找出原因来. 不知道从哪里debug起了....
测试生成cid的代码如下:
错误信息如下:
(IntegrityError) duplicate key value violates unique constraint "ix_cid"
下面是我生成cid的方法:
_cid_rlock = threading.RLock()
def generate_cid():
with _cid_rlock:
return long((time.time()-1377964800.000000)*1000000000)
但是经过我使用多线程测试,发现不太可能生成相同的id(测试代码见下)
应用用的是Flask,数据库层SQLAlchemy,Flask-SQLAlchemy插件(默认配置)
数据库postgresql 9.1.9
系统ubuntu 12.04.2
应用跑在 gunicorn 加gevent
gunicorn -k gevent app:app -w 2
在做提交的时候,直接用的是:
类似如下的代码:
db.session.execute(Story.__table__.insert(), story_values)
db.session.commit()
Google了一阵子了,还是没有找出原因来. 不知道从哪里debug起了....
测试生成cid的代码如下: