支持zodb的后台线程支持

cipher.background的Python项目详细描述


用于创建可以与zodb对话并使用 本地站点组件。

我们可能在重新发明芹菜。

示例

假设我们有一个带有简单发布工作流的dms。我们 有“草稿”和“发布”两种状态。这个例子中的问题 从“草稿”到“发布”的转换需要几分钟时间, 我们不希望用户等待。

首先,我们创建一个WorkflowTransition后台线程:

classMyWorkflowTransition(BackgroundWorkerThread):execute=Truedescription="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_oidsuper(MyWorker,self).__init__(site_db,site_oid,site_name,user_name,daemon=True)defscheduleNextWork(self):returnself.executedefgetObjectFromOID(self):conn=getSite()._p_jarreturnconn.get(self.object_oid)defdoWork(self):sleep(15)# This is our long TASKself.execute=Falsedocument=self.getObjectFromOID()document.wf_status="PUBLISHED"

我们有一个带有初始工作流状态草稿的简单文档。

classDocument(Persistent):wf_state="DRAFT"

现在我们必须调用WorkflowTransition。

defsetWorkflow(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()

当调用worker.start()时,线程进入“background”,用户 不用等到转换完成。

变化

1.0.2(2012-07-31)

  • 重构backgroundworkerThread以从getsite()返回站点

1.0.1(2012-04-05)

1.0.0(2012-02-10)

  • 作为一个单独的包首次发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如果SQL server执行计划是流式传输数据,那么调用next()时Java ResultSet对象将如何反应?   java为什么水平滚动条永远不会出现在JTable上?   java如何在Android项目中添加SDK模块   绿脚:爪哇。lang.ClassCastException:无法将障碍物投射到球投射物   xslt需要在Java1.4.2中使用SaxonB(版本9.1.0.8)方面的帮助   java Apache HTTP客户端下载SOAP响应的一部分   为Java 9计划的“过滤传入序列化数据”解决了数据反序列化安全漏洞吗?   java如何使用drools对列表中的元素进行分组   java从匿名类到lambda表达式   Java中是否有不可变的单链表实现?   java动态添加按钮以滚动查看安卓   java GAE:无法为模块http请求设置管理员登录凭据   java如何在Hibernate 5 CriteriaBuilder中使用条件条件获取计数   java如何将JSON+HAL响应解析为POJO   java如何获取计算器程序,对两个以上的数字进行加、减、乘、除   java Thymeleaf+静态资源+@ResponseBody