我目前正在开发类似Tiktok的大型应用,其中的视频将存在5天。我的问题是我应该如何计划在5天后删除视频? 2我提出的方法是我可以建立一个后台服务工作者,该工作者将不断循环遍历数据库并检查视频是否应该关闭,或者可以将其放入setTimeOut()中5天,这意味着它将在RAM上,并且需要一个服务来在服务器关闭的情况下重新启动所有setTimeOut()。我正在使用AWS EC2,所以我想知道哪种方法可以扩展并节省一些钱。谢谢。
答案 0 :(得分:1)
您可以使用队列管理在其上存储任务。
假设您有一个队列,其中包含任务。您有一个监听队列的使用者。如果有消息发送,则消费者将阅读消息并为您处理作业。
但是有挑战。 何时,您应该将任务发送到队列中,何时,消费者应该处理任务。对于可用性部分,消息代理是不错的选择,但是管理流程取决于您的方法,如果您具有微服务系统设计,则可以将使用者作为服务编写。
当然,您应该了解任务队列和消息队列概念。
看一下区别:
https://www.tech101.in/message-queue-and-task-queue/
有一个与Redis一起使用的简单任务队列包:
请注意,处理消息代理在 生产级别。
您还应该了解cron系统: