Mae rheoli swyddi cefndir yn hanfodol i unrhyw gymhwysiad gwe, yn enwedig pan fydd angen prosesau hir a chymhleth i gael eu rhedeg heb oedi. Mae Sidekiq yn un o'r offer mwyaf poblogaidd ar gyfer rheoli swyddi cefndir yn Ruby, gan ei fod yn cynnig perfformiad uchel a hawdd ei ddefnyddio. Yn yr erthygl hon, byddwn yn archwilio sut i ddefnyddio Sidekiq i reoli swyddi cefndir yn eich cymhwysiad Ruby.
Mae Sidekiq yn fframwaith ar gyfer rheoli swyddi cefndir yn Ruby sy'n seiliedig ar Redis. Mae'n caniatáu i chi brosesu swyddi yn asyncronol, sy'n golygu y gall eich cymhwysiad barhau i weithredu heb aros am weithrediadau hir. Mae Sidekiq yn cynnig nifer o nodweddion defnyddiol, gan gynnwys:
Mae dechrau gyda Sidekiq yn syml. Dilynwch y camau canlynol i'w osod a'i ddefnyddio yn eich prosiect Ruby.
Y cam cyntaf yw gosod Sidekiq yn eich prosiect. Gallwch ei wneud trwy ychwanegu'r canlynol i'ch ffeil Gemfile:
gem 'sidekiq'
Yna, rhedeg y gorchymyn canlynol i osod y gem:
bundle install
Mae Sidekiq yn dibynnu ar Redis i storio a rheoli swyddi. Mae angen i chi osod Redis ar eich system. Gallwch ei wneud trwy ddefnyddio Homebrew ar macOS:
brew install redis
Ar ôl ei osod, gallwch ddechrau Redis gyda'r gorchymyn:
redis-server
Y cam nesaf yw creu sefydliad Sidekiq. Creu ffeil o'r enw sidekiq.rb
yn y cyfeiriadur config/initializers
a chynnwys y cod canlynol:
require 'sidekiq' Sidekiq.configure_server do |config| config.redis = { url: 'redis://localhost:6379/0' } end Sidekiq.configure_client do |config| config.redis = { url: 'redis://localhost:6379/0' } end
Ar ôl i chi sefydlu Sidekiq, gallwch ddechrau creu swyddi cefndir. Mae angen i chi greu dosbarth sy'n ymestyn o Sidekiq::Worker
. Dyma enghraifft o ddosbarth sy'n cynrychioli swydd:
class MyWorker include Sidekiq::Worker def perform(name, count) puts "Hello, #{name}! You are number #{count}." end end
Gallwch ddefnyddio'r dosbarth hwn i ddanfon swyddi i Sidekiq. Mae'r dull perform_async
yn caniatáu i chi ddanfon y swydd i'r ci:
MyWorker.perform_async('John', 1)
Mae hyn yn ychwanegu'r swydd i'r ci, a bydd Sidekiq yn ei brosesu yn fuan.
Mae Sidekiq yn cynnig rhyngwyneb gwe sy'n caniatáu i chi fonitro statws eich swyddi. I ddefnyddio'r rhyngwyneb gwe, ychwanegwch y canlynol i'ch ffeil routes.rb
:
require 'sidekiq/web' mount Sidekiq::Web => '/sidekiq'
Yna, gallwch fynd i http://localhost:3000/sidekiq
i weld y rhyngwyneb gwe. Mae'n dangos y swyddi sy'n aros, y rhai sydd wedi'u cwblhau, a'r rhai sydd wedi methu.
Mae Sidekiq yn caniatáu i chi weithredu swyddi yn asyncronol, sy'n golygu y gall eich cymhwysiad barhau i weithredu tra bod y swyddi yn cael eu prosesu. Mae hyn yn arbennig o ddefnyddiol ar gyfer gweithrediadau sy'n cymryd amser, fel anfon e-byst neu brosesu data.
Dyma enghraifft o sut y gallai swydd anfon e-bost edrych:
class EmailWorker include Sidekiq::Worker def perform(email_address) # Cod i anfon e-bost puts "Sending email to #{email_address}" end end
Gallwch ddefnyddio'r dosbarth hwn fel hyn:
EmailWorker.perform_async('example@example.com')
Os ydych am weithredu swyddi ar amser penodol, gallwch ddefnyddio gem fel sidekiq-scheduler
. Mae hyn yn caniatáu i chi ddirwyn swyddi i'w gweithredu ar amser penodol neu ar gyfnodau penodol.
Ychwanegwch y gem i'ch ffeil Gemfile:
gem 'sidekiq-scheduler'
Yna, rhedeg:
bundle install
Gallwch greu swyddi a ddirwyn nhw fel hyn:
class MyScheduledWorker include Sidekiq::Worker def perform puts "This job runs every hour." end end
Yna, gallwch ddirwyn y swydd i redeg bob awr yn eich ffeil sidekiq.yml
:
:schedule: my_scheduled_worker: cron: "0 * * * *" # Runs every hour class: MyScheduledWorker
Mae'n bwysig rheoli gwallau pan fyddwch yn gweithio gyda swyddi cefndir. Mae Sidekiq yn cynnig dulliau i ddelio â gwallau, gan gynnwys ailgychwyn swyddi sydd wedi methu. Gallwch ddefnyddio'r dull sidekiq_retry_in
i bennu pa mor hir i aros cyn ailgychwyn swydd:
class MyWorker include Sidekiq::Worker sidekiq_options retry: 5 def perform # Cod sy'n gallu methu end end
Mae Sidekiq yn offeryn pwerus ar gyfer rheoli swyddi cefndir yn Ruby. Mae'n cynnig perfformiad uchel, hawdd ei ddefnyddio, a rhyngwyneb gwe sy'n caniatáu i chi fonitro statws eich swyddi. Trwy ddilyn y camau a'r enghreifftiau a ddisgrifiwyd yn yr erthygl hon, gallwch ddechrau defnyddio Sidekiq yn eich prosiectau Ruby a gwneud y gorau o swyddi cefndir.
Peidiwch ag anghofio y gall Sidekiq hefyd weithio gyda gemau eraill fel ActiveJob, sy'n caniatáu i chi ddefnyddio Sidekiq fel y ci ar gyfer eich cymhwysiad Ruby on Rails. Mae'r posibiliadau yn ddiddiwedd, a gobeithio y byddwch yn mwynhau'r profiad o ddefnyddio Sidekiq!
© 2024 RailsInsights. All rights reserved.