Ruby Video
Talks
Speakers
Events
Topics
Leaderboard
Sign in
Talks
Speakers
Events
Topics
Use
Analytics
Sign in
Suggest modification to this talk
Title
Description
RubyConf AU 2014: http://www.rubyconf.org.au It's almost inevitable in any Ruby Project - you hit that stage where your logic starts getting more complex, you start doing more stuff that needs to happen but doesn't have to happen in the foreground - or you just want things to be faster. You move your logic out into workers and do the work in the background. This talk is going to be all about Sidekiq - a threaded background job implementation written in Ruby - and, in two parts: How you can use it and how you can bend it to your will. Part 1: Intro to Sidekiq The boring: a brief introduction to sidekiq, how it works - what it's advantages are. The stuff you need to know about it, why it's useful to consider - even if you're using CRuby / MRI. Part 2: Hacking Sidekiq The cooler part - once you know what Sidekiq is, I'm going to show how you can use Sidekiq in your product, how you can extend it and bend it to your will. I'll go into how it implements itself in ruby land and how it interacts with the Redis. I'll show how you can use the existing middleware (and write your own) to add behaviour to your code, patterns we've found useful for implementing and testing workers as well as the even more interesting side - using Lua support in Redis to implement stuff in Sidekiq. I want to encourage developers to look at extending their tool set to work better with not just ruby - to become comfortable with how they work internally (e.g. you should really learn how to love redis) and what you really need to be careful of (e.g. bugs that manifest when the site is under less load than usual - a real world example of going too far). Finally, I'll end with an important question: Why not just use a proper message queue?
Date
Summarized using AI?
If this talk's summary was generated by AI, please check this box. A "Summarized using AI" badge will be displayed in the summary tab to indicate that the summary was generated using AI.
Show "Summarized using AI" badge on summary page
Summary
Markdown supported
In this talk, Darcy Laycock discusses the potential of Sidekiq, a threaded background job processing tool for Ruby applications, presented at RubyConf AU 2014. The discussion is divided into two main parts: an introduction to Sidekiq and an exploration into its advanced capabilities. **Key Points Discussed:** - **Background Processing:** Background processing is essential in modern applications for handling complex logic and operations without blocking user interactions. Sidekiq is a powerful tool for managing these processes efficiently. - **History of Background Job Tools:** Laycock provides a brief overview of historical background job processing tools in Ruby, including BackgroundRB, Delayed Job, Rescue, and the introduction of Sidekiq. - **Advantages of Sidekiq:** Laycock highlights Sidekiq's features, such as its threading capabilities, built-in exception handling, job retries, unique job management through middleware, and the use of Redis for job storage and processing. - **Middleware and Extensibility:** Sidekiq's middleware system allows developers to customize functionality, making it adaptable to specific application needs. Custom middleware can handle job uniqueness, manage retries, and improve overall job processing efficiency. - **Practical Aspects:** The talk covers how Sidekiq operates, including job queuing, serialization into JSON, and the coordination of job execution through the Sidekiq manager, emphasizing fault tolerance and operational efficiency. - **Advanced Usage Patterns:** Laycock presents advanced use cases, such as defining job pipelines, managing concurrency, and ensuring job idempotency to avoid unintended side effects. - **Future Developments:** The speaker shares insights into upcoming features in Sidekiq 3, including a dead job queue for managing failed jobs and nested job batches for complex workflows. **Conclusions and Takeaways:** - Developers are encouraged to explore Sidekiq's capabilities to enhance background job processing. It is essential to understand its structure and functionality to effectively extend its features and maintain reliable and efficient background processing systems. - Emphasis is placed on experimenting with Sidekiq, integrating it with Redis, and maintaining clean code practices while leveraging its powerful background processing capabilities. - Debugging through Redis insights can offer a clearer picture for resolving job processing issues, and integrating analytics can further improve Sidekiq's functionality. In conclusion, Sidekiq can significantly streamline background job management processes in Ruby applications and is a valuable tool for developers seeking efficiency and reliability.
Suggest modifications
Cancel