Background thread support with ZODB support
Project description
A library for creating background threads that can talk to the ZODB and use local site components.
We’re probably reinventing Celery.
Example
Let’s assume we have a DMS with a simple publication workflow. We have two states “DRAFT” and “PUBLISH”. The Problem in this example is: that the transition form “DRAFT” to “PUBLISH” takes some minutes, and we don’t want the user to be waiting.
First we have create a WorkflowTransition-BackgroundThread:
class MyWorkflowTransition(BackgroundWorkerThread):
execute = True
description = "background worker thread (%(class_name)s) for %(site_name)s User %(user_name)s"
def __init__(self, site_db, site_oid, site_name, user_name, daemon=True, object_oid=None):
self.object_oid = object_oid
super(MyWorker, self).__init__(site_db, site_oid, site_name, user_name, daemon=True)
def scheduleNextWork(self):
return self.execute
def getObjectFromOID(self):
conn = getSite()._p_jar
return conn.get(self.object_oid)
def doWork(self):
sleep(15) # This is our long TASK
self.execute = False
document = self.getObjectFromOID()
document.wf_status = "PUBLISHED"
We have a simple Document with an initial Workflow-State draft.
class Document(Persistent):
wf_state = "DRAFT"
Now we have to call our WorkflowTransition.
def setWorkflow(site, document_oid, user_name):
worker = MyWorkflowTransition(
site_db = site._p_jar.db(),
site_oid = site._p_oid,
site_name = site.__name__,
user_name = user_name,
object_oid = document_oid,
)
worker.start()
When calling worker.start() the thread goes into “Background” and the user don’t have to wait until the Transition is finished.
CHANGES
1.0.2 (2012-07-31)
Refactor BackgroundWorkerThread to have the site returned from getSite()
1.0.1 (2012-04-05)
1.0.0 (2012-02-10)
Initial release as a separate package.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file cipher.background-1.0.2.tar.gz
.
File metadata
- Download URL: cipher.background-1.0.2.tar.gz
- Upload date:
- Size: 14.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 067f1bc9377689be5304bf69643555a31aa9c3b4d82dfe964cd3aee0ce468184 |
|
MD5 | 12d0f7202e3ff2bf35077693483af6e8 |
|
BLAKE2b-256 | a0c452e17b517981e66a62b249cffcd820055c0660b9477bb3cfb5b4af598e8c |