To handle a situation where a cache key needs to be deleted and you don’t have admin access to the system itself, you can handle the remove through the application by defining a new Rails controller method that calls a Sidekiq job to delete the cache key.
The steps are:
- Define the new route and controller action
- Create the new Sidekiq job to delete the key
- Invoke the controller action in whichever environment the key needs to be cleared from
Route and Controller
get "/sidekiq/delete_key/:key", to: "sidekiq#delete_key"
class SidekiqController < ApplicationController def delete_key DeleteSidekiqKeyJob.perform_later(params[:key]) end end
class DeleteSidekiqKeyJob < ApplicationJob def perform(key) Rails.cache.delete(key) end end
Now you can hit the route you defined and pass in the key as a path parameter to delete the cached record.