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
Disque
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Mariano Iglesias
May 30, 2015
Programming
100
0
Share
Disque
Lightning talk given at New York for CakeFest 2015
Mariano Iglesias
May 30, 2015
More Decks by Mariano Iglesias
See All by Mariano Iglesias
Simple is Good, Complex is Bad
mariano
2
160
A future without frameworks
mariano
2
210
Procesando pagos: LO ESTÁS HACIENDO MAL
mariano
0
200
Go aka Golang
mariano
1
110
ElasticSearch: hacer un Google es una papa
mariano
0
76
Random tips that will save your project's life
mariano
0
55
node-db: La excusa perfecta para hablar de C++ y Node.js
mariano
0
81
Episodio VI - El retorno del freelancer
mariano
0
41
Going crazy with NodeJS and CakePHP
mariano
1
71
Other Decks in Programming
See All in Programming
Road to RubyKaigi: Play Hard(ware)
makicamel
1
540
AIを導入する前にやるべきこと
negima
2
330
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
140
How We Practice Exploratory Testing in Iterative Development( #scrumniigata ) / 反復開発の中で、探索的テストをどう実施しているか
teyamagu
PRO
3
690
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
310
AWSコミュニティ活動は顧客のクラウド推進に効くのか / Do AWS community activities help customers adopt the cloud?
seike460
PRO
0
170
[RubyKaigi 2026] Require Hooks
palkan
1
290
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
750
ハーネスエンジニアリングとは?
kinopeee
13
6.8k
20260514 - build with ai 2026 - build LINE Bot with Gemini CLI
line_developers_tw
PRO
0
210
AIベース静的検査器の偽陽性率を抑える工夫3選
orgachem
PRO
4
440
エラー処理の温故知新 / history of error handling technic
ryotanakaya
7
1.8k
Featured
See All Featured
Skip the Path - Find Your Career Trail
mkilby
1
110
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.2k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
The untapped power of vector embeddings
frankvandijk
2
1.7k
The Language of Interfaces
destraynor
162
26k
How to Ace a Technical Interview
jacobian
281
24k
Reality Check: Gamification 10 Years Later
codingconduct
0
2.1k
Designing for Timeless Needs
cassininazir
0
220
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
160
Bioeconomy Workshop: Dr. Julius Ecuru, Opportunities for a Bioeconomy in West Africa
akademiya2063
PRO
1
100
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
120
Transcript
Disque A job queue to win it all
#DoingItWrong
Using Redis as a queue? No longer needed
• Non-blocking server • Distributed • Replication • In memory
• Job acknolwedging • If not acknolwedged, goes back to
queue • Job retries • Job delay
#Run
$ disque /etc/disque/7711.conf $ disque /etc/disque/7712.conf $ disque -p 7711
127.0.0.1:7711> cluster meet 127.0.0.1 7712 OK 127.0.0.1:7711> HELLO 1) (integer) 1 2) "26a390eb07bba018a9ed0591b2110479f16bb19d" 3) 1) "26a390eb07bba018a9ed0591b2110479f16bb19d" 2) "127.0.0.1" 3) "7711" 4) "1" 4) 1) "9ccaa86ceaf032eeb67097d639b80315090f79d5" 2) "127.0.0.1" 3) "7712" 4) "1"
#PHP
github.com/mariano/disque-php $ composer install mariano/disque-php
$disque = new \Disque\Client([ '127.0.0.1:7111', '127.0.0.2:7112' ]); $job = new
\App\Jobs\EmailJob([ 'email' => '
[email protected]
', 'template' => 'signed_up' ]); $disque->queue('emails')->push($job); $job = new \App\Jobs\RemindActivation($user); $disque->queue('emails')->schedule($job, new \DateTime('+1 week'));
$queue = $disque->queue('emails'); while ($job = $queue->pull()) { $job->execute(); $queue->processed($job);
}
#CLIGotchas
• Memory! • Error recovery • SIGINT • supervisord