Sidekiq là một hệ thống xử lý công việc nền (background) cho các ứng dụng Ruby. Nó giúp chạy các tác vụ ở background, làm cho các ứng dụng của bạn nhanh hơn và hiệu quả hơn.
Sidekiq sử dụng các luồng để xử lý nhiều công việc cùng lúc trong cùng một quy trình. Nó không yêu cầu Rails nhưng sẽ tích hợp chặt chẽ với Rails để làm cho việc xử lý ở background trở nên đơn giản.
Xem trang wiki https://github.com/sidekiq/sidekiq/wiki/Getting-Started và làm theo hướng dẫn hoặc bạn có thể xem playlist YouTube này https://www.youtube.com/playlist?list=PLjeHh2LSCFrWGT5uVjUuFKAcrcj5kSai1 để tìm hiểu tất cả về Sidekiq và xem các tính năng của nó trong thực tế.
Để biết thêm thông tin, truy cập https://github.com/sidekiq/sidekiq
SomeJob.set(queue: 'high_priority').perform_async(args)
)Gửi email:
class WelcomeEmailJob
include Sidekiq::Job
def perform(user_id)
user = User.find(user_id)
UserMailer.welcome_email(user).deliver_now
end
end
# Enqueue the job
WelcomeEmailJob.perform_async(new_user.id)
Thay đổi kích thước hình ảnh:
class ResizeImageJob
include Sidekiq::Job
def perform(image_id)
image = Image.find(image_id)
image.resize(800, 600)
image.save
end
end
# Enqueue the job
ResizeImageJob.perform_async(uploaded_image.id)
Nhập dữ liệu:
class ImportDataJob
include Sidekiq::Job
def perform(file_path)
CSV.foreach(file_path, headers: true) do |row|
Product.create(row.to_hash)
end
end
end
# Enqueue the job
ImportDataJob.perform_async('products.csv')