On Sunday, February 9, 2014 3:14:50 PM UTC+2, Chris Angelico wrote: > On Sun, Feb 9, 2014 at 11:47 PM, Asaf Las <r...@gmail.com> wrote: >
Thanks > > Also, you're connecting and disconnecting repeatedly... oh, I see why > it didn't work when I tried. You're also using two completely > different database names: 'messageid.db' which is named in a constant > and in the default argument, and 'example.db' which is what you > actually use. Should have a single source of truth, otherwise you > confuse the people who might otherwise be able to test your code :) my apologies , it was deep night, when i got disappointed and forget to update names so left as it is and did not check when posted :-) > Anyway. This code is extremely inefficient: > > > conn = sqlite3.connect('example.db', 10.0, True, "EXCLUSIVE") > > c = conn.cursor() > > c.execute("SELECT val FROM msgid WHERE id = 0") > > tint = int(c.fetchone()[0]) + 1 > > c.execute("UPDATE msgid SET val={0} WHERE id = 0".format(tint)) > > conn.commit() > > conn.close() > > Much more common would be to retain a connection and repeatedly > perform queries. Then you won't need to open it EXCLUSIVE, and you can > simply query, update, and then commit (all your locks should be > released at the commit). Do that, and you should see at least > reasonable performance, plus everything should work correctly. > ChrisA i did it just to test sqlite3 behavior and actually test was related to simulation of unique incremental sequence number/counter for independently spawned tasks accessing counter in non deterministic manner. /Asaf -- https://mail.python.org/mailman/listinfo/python-list