Solid Queue stores completed jobs in the `solid_queue_jobs` table by default. This GitHub issue explains why.

Solid Queue provides a command to clean up the older records to prevent the database size from growing indefinitely.


Steps

  1. Define the retention period in the environment config. (Default is 1 day)

    config.solid_queue.clear_finished_jobs_after = 1.month
    
  2. Invoke the cleanup command.

    > SolidQueue::Job.clear_finished_in_batches
    
  3. Alternatively, it can be scheduled as a recurring task in Solid Queue.

    # recurring.yml
    production:
      periodic_job_cleanup:
        command: "SolidQueue::Job.clear_finished_in_batches"
        queue: default
        schedule: at 4pm every day
    
  4. Restart Solid Queue.