zc.lockfile 1.0.0

Basic inter-process locks

Downloads ↓

The zc.lockfile package provides a basic portable implementation of
interprocess locks using lock files. The purpose if not specifically
to lock files, but to simply provide locks with an implementation
based on file-locking primitives. Of course, these locks could be
used to mediate access to other files. For example, the ZODB file
storage implementation uses file locks to mediate access to
file-storage database files. The database files and lock file files
are separate files.

Contents

  • Detailed Documentation

    • Lock file support
  • Change History

    • 1.0.0 (2008-10-18)
    • 1.0.0b1 (2007-07-18)
  • Download

Detailed Documentation

Lock file support

The ZODB lock_file module provides support for creating file system
locks. These are locks that are implemented with lock files and
OS-provided locking facilities. To create a lock, instantiate a
LockFile object with a file name:

>>> import zc.lockfile
>>> lock = zc.lockfile.LockFile('lock')

If we try to lock the same name, we'll get a lock error:

>>> import zope.testing.loggingsupport
>>> handler = zope.testing.loggingsupport.InstalledHandler('zc.lockfile')
>>> try:
...     zc.lockfile.LockFile('lock')
... except zc.lockfile.LockError:
...     print "Can't lock file"
Can't lock file
>>> for record in handler.records:
...     print record.levelname, record.getMessage()
ERROR Error locking file lock; pid=UNKNOWN

To release the lock, use it's close method:

>>> lock.close()

The lock file is not removed. It is left behind:

>>> import os
>>> os.path.exists('lock')
True

Of course, now that we've released the lock, we can created it again:

>>> lock = zc.lockfile.LockFile('lock')
>>> lock.close()

Change History

1.0.0 (2008-10-18)

  • Fixed a small bug in error logging.

1.0.0b1 (2007-07-18)

Initial release

Download

File Type Py Version Uploaded on Size # downloads

zc.lockfile-1.0.0.tar.gz
(md5)
>>> import zc.lockfile
>>> lock = zc.lockfile.LockFile('lock')
>>> import zope.testing.loggingsupport
>>> handler = zope.testing.loggingsupport.InstalledHandler('zc.lockfile')
>>> try:
...     zc.lockfile.LockFile('lock')
... except zc.lockfile.LockError:
...     print "Can't lock file"
Can't lock file
>>> for record in handler.records:
...     print record.levelname, record.getMessage()
ERROR Error locking file lock; pid=UNKNOWN
>>> lock.close()
>>> import os
>>> os.path.exists('lock')
True
>>> lock = zc.lockfile.LockFile('lock')
>>> lock.close()
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。