Django signals机制的几个简单问题

时间:2023-01-06 19:15:05

1、Django signals机制不是异步执行,是同步执行,所以需要异步执行的耗时任务不能用这个。

2、异步耗时任务不用这个,那些用signals?主要是解耦那些多次重复场合被调用的函数。直接用事件挂钩的方式被调用,这可以让你的代码更干净。

4、异步耗时任务应该用什么,现在Django新出channels机制,那些可靠性要求不是100%的异步任务用这个就行了。

5、signals机制可能导致嵌套调用无限制循环,这个挂钩函数注册的信号事件,在函数内部绝对不能发生,否则就是无限制嵌套调用终致报错。

6、内建的那些事件是比较简单的,某些业务处理事件最好自己自定义signals,当然了,前提是事件操作场景多,关注这个事件的业务挂钩函数页够多才行。