【发布时间】:2022-10-20 14:38:25
【问题描述】:
我正在使用 Django post_save 信号,每当创建新记录时都会触发。每次发生保存操作时都会调用此信号。即使它有created 布尔字段,这个函数也一直在执行。
这里的问题是,在每次请求时,我都会更新User 表last_login 和last_active 字段。因此,对于每个请求,都会执行此信号。即使我们创建了布尔字段,函数调用也会发生。当我们一次有百万个请求时,这可能会导致性能影响。
我正在寻找解决方案,只有在 User 表中创建新记录时,才应执行信号。
示例代码:
@receiver(post_save, sender=User, dispatch_uid="call_method")
def call_method(sender, instance, created, **kwargs):
print ('>>>>>>>>>> Signal Called ', instance)
if created:
print ('$$$$$$$$$$$ User created')
请帮助我找到更好的解决方案。
【问题讨论】:
-
你能分享一下你想在信号中执行的指令类型吗?那里可能有一个快速而优雅的解决方案的机会
标签: python django django-models django-signals