我有一组我写的芹菜任务。这些任务中的每一个都以作者 ID 作为参数——只是一个例子——作为参数,对于作者的每本书,它获取最新价格并将其存储在数据库中。
我想通过将 Django 的
@transaction.commit_on_success
装饰器添加到我的任务中来将事务添加到我的任务中。如果任何任务崩溃,我希望整个任务都失败,并且没有任何内容可以保存到数据库中。
我有十几个芹菜工人检查作者的书籍价格,我想知道这个简单的事务逻辑是否会导致我的 Postgres 数据库中的锁定和竞争条件。
我已经挖掘并发现了这个名为django-celery-transactions 的项目,但我仍然不了解这背后的真正问题以及该项目试图解决的问题。