我目前正在将Django与S3结合使用。创建新对象后,将通过SQS发送通知。AWS documentation我正在使用boto3接收通知。 Boto3 documentation。我可以使用receive_message函数接收消息,但是我必须每分钟运行一次该函数,以查看是否有新消息可用。有没有一种方法可以自动将消息传递到我的django应用程序,而不必通过每分钟连续运行一个函数来查看是否有新消息来检索它们?已交付而不是已获取。
答案 0 :(得分:2)
要在django应用中接收通知,您可能需要api端点才能接收http通知-django View(带有身份验证)。
可以通过多种方式将通知作为HTTP POST请求从AWS发送到您的api的方式:
S3可以通过它们两者路由通知,或者您可以将它们与AWS SQS一起使用以进行其他处理。
其他次要的轮询选项包括使用Celery with SQS as broker,但这很可能仅需要为此代理使用单独的工作程序,并且这也是定期轮询。还是最肮脏的方式-查询S3 API以获取完整的对象列表并检测新的/修改的。