我正在开发一个 django IPN 插件,它将 IPN 数据保存到模型中,然后调用 post_save 信号。
我担心在这种用例(gunicorn、gevent 等)下信号可能会异步调用/完成。 IPN 经常向 iPN url 发送超过 1 个请求,我需要能够按顺序处理这些请求。
我应该为此使用队列吗?简单的 python 队列会工作得更好,还是应该使用像 kombu + celery 这样的东西(有 1 个工作人员)?
不确定同步性是您真正关心的问题。 Django的信号总是被执行进行中:也就是说,它们将由执行该请求其余部分的进程在返回响应之前执行。但是,如果您的服务器本身是异步的,则一个请求可能会在稍后收到的第二个请求之后完成处理,因此信号将以错误的顺序进行处理。
当然,Celery 绝对是异步的,但如果可靠的排序是您的首要任务,那么它可能是一个更好的选择。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)