sidekiq gem and implementation

 

first Add gem  this gem 

gem 'sidekiq'
gem 'sidekiq-status'
gem 'sidekiq-cron'


than create in the  worker file like subscription_worker.rb 


require 'sidekiq-status'

class SubscriptionWorker
include Sidekiq::Worker
include Sidekiq::Status::Worker

def perform
puts "hi-------"    
# Subscription.all.each do |subscription|
# if subscription.present? && subscription.expire_date.between?(Date.today, Date.today + 1.week)
# send_push_notification(subscription.user_id, "your subscription will expired on #{subscription.expire_date}", "subscription reach end date notification")
# end
# end
end

def send_push_notification(user_id, message, title)
user = User.find(user_id)
PushNotification.notification(
user, message, title
)
end
end

than change the code in config/initializers/sidekiq.rb

require 'sidekiq'
require 'sidekiq-status'

Sidekiq.configure_client do |config|
# accepts :expiration (optional)
Sidekiq::Status.configure_client_middleware config, expiration: 30.minutes
end

Sidekiq.configure_server do |config|
# accepts :expiration (optional)
Sidekiq::Status.configure_server_middleware config, expiration: 30.minutes

# accepts :expiration (optional)
Sidekiq::Status.configure_client_middleware config, expiration: 30.minutes
end

than add the require code in routes 

Rails.application.routes.draw do
require 'sidekiq/web'
require 'sidekiq/cron/web'
mount Sidekiq::Web => '/sidekiq'


than create in the config folder config/schedule.yml and write like this code 

subscription_expire_alert_job:
cron: "0 * * * * *"
class: "SubscriptionWorker"
queue: default

Comments

Popular posts from this blog

Rails Create new Project

what is devise ? and how to use devise gem

Ruby Variable