Hỏi Unlock nowait khi đang chạy mà client close tab browser

Thảo luận trong 'PostgreSQL' bắt đầu bởi quangthanh, 26/12/14.

  1. quangthanh Member

    Chào mọi người,
    Mình đang bị vướng một vấn đề về việc lock record type nowait.
    Cụ thể như sau:
    -Hệ thống của mình có một function được gọi từ button ở client chạy thường mất khá lâu 5-10p là bình thường.
    -Trong thời gian chạy function kia mình muốn lock nowait record mà function đang chạy đc truyền id vào
    -Mọi thứ sẽ không vấn đề gì nếu mọi thứ chạy suôn sẻ từ đầu đến cuối, chạy xong -> commit -> unlock, nhưng nếu trong trường hợp đang chạy mà client close tab brower hay refresh thì record bị lock luôn đến khi khởi động lại server, mình đã tim hiểu nhưng chưa biết giải quyết vấn đề này thế nào, rất mong được mọi người giúp đỡ.

    Dưới đây là đoạn code mình dùng để lock.
    Mã (text):
    1. try:
    2.             cr.execute("""SELECT id FROM "%s" WHERE id IN %%s FOR UPDATE NOWAIT""" % self._table,
    3.                       (tuple(ids),), log_exceptions=False)
    4.         except psycopg2.OperationalError:
    5.             cr.rollback()
    TKS ALL!

Chia sẻ trang này