Python 如何确保一个函数在一段时间内只调用一次?

Python 如何确保一个函数在一段时间内只调用一次?,python,django,email,scheduled-tasks,Python,Django,Email,Scheduled Tasks,有一个聊天应用程序可以将信息传输到我的服务器,我这样做是因为我想把所有的信息记录保存在我自己的服务器上。基本上,聊天应用程序将消息发送到特定的url,我使用Django来保存它们,我已经这样做了,我使用一个名为save\u message(request)的函数来保存它们(只需将消息写入文本文件) 现在我想在服务器上编写一个程序,当消息到达服务器时可以给我发送电子邮件,我也已经完成了,我使用了一个名为send\u email()的函数来完成 但是,问题是,我想定期发送电子邮件 例如: 如果服务

有一个聊天应用程序可以将信息传输到我的服务器,我这样做是因为我想把所有的信息记录保存在我自己的服务器上。基本上,聊天应用程序将消息发送到特定的url,我使用Django来保存它们,我已经这样做了,我使用一个名为
save\u message(request)
的函数来保存它们(只需将消息写入文本文件)

现在我想在服务器上编写一个程序,当消息到达服务器时可以给我发送电子邮件,我也已经完成了,我使用了一个名为
send\u email()
的函数来完成

但是,问题是,我想定期发送电子邮件

例如:

  • 如果服务器在2小时内收到1000条消息,我只想收到一封电子邮件。也就是说,这封电子邮件将在收到第一条消息后发送,在剩余的2小时内,无论是否有新消息,我都不会收到任何消息
  • 如果服务器在2/4/8/中未收到任何消息。。。几个小时后,我就不会收到任何电子邮件了
我认为每次服务器收到消息时,它都需要调用
save\u message(request)
,而且我认为
send\u email()
调用应该在
save\u message(request)
的主体中,我不知道如何在特定时间跳过此调用。有可能吗


提前谢谢你

使用
django crontab
并在setting.py中指定要在多长时间后运行的功能的时间

如果需要,编写一个名为send_email_的函数。它会检查最后一封邮件是否在>2小时前发送,如果是,则会呼叫send_email。谢谢,这很有帮助