具有事务意识的芹菜作业设置
pyramid_transactional_celer的Python项目详细描述
事务感知芹菜作业设置。这是与zope集成的 transaction包,它实现了完整的两阶段提交协议。 虽然它不是为金字塔以外的任何东西设计的,但它也不是 使用金字塔的任何组件。其他地方都没有测试过。
- 免费软件:BSD许可证
- 文档:https://pyramid_transactional_celery.readthedocs.org。
功能
- 使用^{tt1}调用任务时,将任务排队到线程本地$ 或apply_async。
- 如果事务被中止,那么任务将永远不会被调用。
- 如果事务已提交,则任务将通过其正常的 apply_async处理并排队等待处理。
限制
目前,该代码是围绕芹菜v3.1设计的,是否 它将适用于以前的版本。我非常乐意整合变化 这将使它与其他版本一起工作,但是由于我通常会继续 最新的版本,它不是我自己开发的重点。
用法
使用图书馆是一件相对容易的事情。首先,你需要 将芹菜集成到金字塔应用程序中,为此我建议使用 pyramid_celery。完成后,您只需开始创建 任务。最大的区别是对于基于功能的任务,您使用不同的 装饰工:
frompyramid_transactional_celeryimporttask_tm@task_tmdefadd(x,y):"""Add two numbers together."""returnx+y
就这些了。对于基于类的任务,您只需要 子类TransactionalTask而不是Task:
frompyramid_transactional_celeryimportTransactionalTaskclassSampleTask(TransactionalTask):"""A sample task that is transactional."""defrun(x,y):returnx+y
就这样。鲍勃是你叔叔。
历史记录
0.1.1(2015-01-19)
- 删除了对 以前的方法。虽然这不会产生错误,但却浪费了内存。
0.1.0(2015-01-19)
- 最初的功能,但是需要更多的边缘案例测试来确保 它在所有情况下都能正常工作,而且和其他版本的芹菜也一样。
- pypi上的第一个版本。