How do you create a basic Sidekiq worker?

Beginner

Answer

A basic Sidekiq worker includes the Sidekiq::Worker module and defines a perform method:

class EmailWorker
  include Sidekiq::Worker
  
  def perform(user_id, subject)
    user = User.find(user_id)
    UserMailer.notification(user, subject).deliver_now
  end
end

# Enqueue the job
EmailWorker.perform_async(123, "Welcome!")

The worker must be serializable, so pass simple data types (strings, numbers, arrays, hashes) rather than complex objects.