gpt4 book ai didi

django - 在 Django 中提交事务后运行代码

转载 作者:行者123 更新时间:2023-12-03 13:56:55 25 4
gpt4 key购买 nike

在 Django 中提交事务后有什么方法可以运行一些代码吗?

我需要将一些消息发送到rabbitmq 服务器进行离线处理,但是在提交Django 事务之前,消息会到达消费者。

我的消息是在模型的 post_save 信号中发送的。我正在寻找的是一种类似的机制,使用信号或其他东西,它会在提交后执行代码(如果事务失败则不执行任何操作)。

我还没有在 Django 中找到任何通用的方法。你有什么想法?

最佳答案

django-transaction-hooks为Django < 1.9解决了这个问题,功能是built into Django 1.9+ :

from django.db import transaction

def do_something():
pass # send a mail, invalidate a cache, fire off a Celery task, etc.

transaction.on_commit(do_something)

关于django - 在 Django 中提交事务后运行代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/950214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com