Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Sidekiq under the hood
Search
Anton Davydov
September 26, 2015
Programming
440
0
Share
Sidekiq under the hood
Anton Davydov
September 26, 2015
More Decks by Anton Davydov
See All by Anton Davydov
How to make a technical decision
davydovanton
0
140
МГТУ
davydovanton
0
100
Events. Events. Events! - krk.rb
davydovanton
0
160
Events. Events. Events!
davydovanton
0
840
Event Sourcing RubySPBConf 2k18
davydovanton
1
210
Architecture of hanami applications
davydovanton
1
7.7k
Hanami Architecture
davydovanton
2
320
viewing ruby blossom kaigi2017
davydovanton
0
750
viewing ruby blossom rdrc2017
davydovanton
2
240
Other Decks in Programming
See All in Programming
ソースコード→AST→オペコード、の旅を覗いてみる
o0h
PRO
1
140
Sans tests, vos agents ne sont pas fiables
nabondance
0
140
Agentic UI in the Frontend: Architectures with Open Standards @JAX 2026 in Mainz
manfredsteyer
PRO
0
120
AWSはOSSをどのように 考えているのか?
akihisaikeda
0
120
運転動画を検索可能にする〜Cosmos-Embed1とDatabricks Vector Searchで〜/cosmos-embed1-databricks-vector-search
studio_graph
3
960
今さら聞けないCancellationToken
htkym
0
110
Migrations : C'est une question d'hygiène !
vinceamstoutz
0
680
決定論 vs 確率論:Gemini 3 FlashとTF-IDFを組み合わせた「法規判定エンジン」の構築
shukob
0
170
Cloudflare で始める Data Platform
ta93abe
0
190
次世代リンターで探る、tsgo 時代における型認識カスタムルールの現実解
ytakahashii
0
240
ReactとSvelteのその先、Ripple-TS / Beyond React and Svelte: Ripple-TS
ssssota
1
330
ビジネスモデルから紐解く、AI+型駆動開発
hirokiomote
0
360
Featured
See All Featured
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
230
The SEO Collaboration Effect
kristinabergwall1
1
450
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
180
A Modern Web Designer's Workflow
chriscoyier
698
190k
The AI Revolution Will Not Be Monopolized: How open-source beats economies of scale, even for LLMs
inesmontani
PRO
3
3.4k
Test your architecture with Archunit
thirion
1
2.2k
Embracing the Ebb and Flow
colly
88
5k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
280
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
200
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Transcript
Hello!
github: davydovanton twitter: anton_davydov Anton Davydov
RCNTEC developer sidekiq commiter ruby doc / rails / crystal
OSS one love <3
@rubyunderhood curator https://twitter.com/rubyunderhood
@moscowrb http://moscow-rb.org
You Beer
You Beer Me
I (we) <3 sidekiq!
Simple, efficient background processing for Ruby.
Sidekiq server New thread
I (we) <3 actors!
Manager actor
Fetcher actors Manager actor
Redis Fetcher actors Manager actor
Redis Fetcher actors Processor actors Manager actor
Redis Fetcher actors Processor actors Manager actor Workers
MyWorker.perform_async
irb > MyWorker.perform_async Redis queue Serialization prams
Processor actors Fetcher actors Redis Manager actor Workers
Processor actors Manager actor Workers Fetcher actors Redis
Processor actors Manager actor Workers Fetcher actors Redis
Workers Processor actors Manager actor Fetcher actors Redis
LongWorker Redis
Redis Serialization prams LongWorker After 8 seconds
middleware
Sidekiq.configure_server do |config| config.server_middleware do |chain| chain.add YourMiddleware, options end
end
def call(worker, msg, queue) # code before call you worker
yield rescue => e # run if your worker is failed raise e ensure # run in your worker passed or failed end
def call(worker, msg, queue) # code before call you worker
yield rescue => e # run if your worker is failed raise e ensure # run in your worker passed or failed end
def call(worker, msg, queue) # code before call you worker
yield rescue => e # run if your worker is failed raise e ensure # run in your worker passed or failed end
def call(worker, msg, queue) # code before call you worker
yield rescue => e # run if your worker is failed raise e ensure # run in your worker passed or failed end
Sidekiq-statistic github.com/davydovanton/sidekiq-statistic
Improved display of statistics for your sidekiq workers and jobs.
None
None
None
None
Worker name Last job status Runtime Start time
Jobs per day charts for each worker Last job status
for each worker Passed and failed jobs count Average job time Max and min jobs time Total jobs time Last job time
I <3 feedback!
Anton Davydov github.com/davydovanton twitter.com/anton_davydov Thank you!