计算SLA最有效的方法是什么



我正在想办法改进我的代码。所以基本上有一个网站,用户可以做一些事件。我们给用户一些关于事件结果的总结,SLA就是其中之一。

如果我想计算事件SLA,我可以通过检索对象并从end_time中减去start_time来完成。

相关型号:

class Event(models.Model):
...
start_time = models.DateTimeField()
end_time = models.DateTimeField()
user = models.ForeignKey(User, on_delete=models.CASCADE)
...

我计算SLA的代码如下。

events = Event.objects.all()
tmp_sla = 0
for event in events:
time_difference = event.end_time - event.start_time
tmp_sla += time_difference // 60 # convert seconds to minute

average_sla = tmp_sla // events.count()

问题是事件太多,用户太多。这导致计算时间过长。有时我需要使用多个for循环来计算它。计算时间甚至更长。

有没有内置的Django函数?或者我如何改进我的代码?

提前谢谢。

在我看来,改进代码的最佳方法是使用自定义管理器。请参阅文档:

https://docs.djangoproject.com/en/dev/topics/db/managers/

相关内容

最新更新