Rails 6 每 24 小时从数据库中自动删除帖子

Rails 6 Auto delete posts from database every 24 hours

有没有办法自动删除 posts/products/articles 或在 rails 6 应用程序上创建的任何内容?我正在尝试建立一个在线图像存储库,用户可以上传仅出现 24 小时的图像,然后 deleted.I 通过活动存储和 Postgres 发布和保存 pictures/text 但我可以'不要让它自动删除。我读过有关 sidekiq 和 resque 调度程序的任何时候,但我发现很难理解并使其工作。我尝试了一些教程并阅读了文档,但我仍然遇到问题。谁能指出我正确的方向或帮助我?

你有很多选择

  1. 最简单的方法是创建一个 rake task and setting up a cron job 来每分钟或类似时间调用一次。如果你每 24 小时调用一次,你最终可能会停留 posts 长达 47 小时。

  2. 您可以通过两种方式使用delayed jobs

    2.1 在after_create 回调中,设置作业在24 小时后删除post。像这样 handle_asynchronously :in_the_future, run_at: Proc.new { 24.hours.from_now }

    2.2 使用 delayed_job_recurring gem 在选项一中做同样的事情,但不需要使用 cron

编辑:我会使用选项 2.1,因为它是最简单的并且更易于维护,唯一的缺点是它将为每个 post 创建一个工作,但即使使用每天一百万 posts