<rss xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title>Sidekiq - Tag - // TODO: Fix Later (2019)</title><link>https://viktor.dev/en/tags/sidekiq/</link><description>Sidekiq - Tag - // TODO: Fix Later (2019)</description><generator>Hugo -- gohugo.io</generator><language>en-us</language><managingEditor>email@viktor.dev (Viktor Chukhantsev)</managingEditor><webMaster>email@viktor.dev (Viktor Chukhantsev)</webMaster><copyright>© Viktor Chukhantsev</copyright><lastBuildDate>Tue, 22 Oct 2019 02:51:33 +0700</lastBuildDate><atom:link href="https://viktor.dev/en/tags/sidekiq/" rel="self" type="application/rss+xml"/><item><title>Move Sidekiq jobs</title><link>https://viktor.dev/en/2019-10-22-move-sidekiq-jobs/</link><pubDate>Tue, 22 Oct 2019 02:51:33 +0700</pubDate><author>email@viktor.dev (Viktor Chukhantsev)</author><guid>https://viktor.dev/en/2019-10-22-move-sidekiq-jobs/</guid><description><![CDATA[<p>I was looking for a way to move jobs from one high priority queue to another less prioritized in Sidekiq.</p>
<p>There is nothing built into Sidekiq to complete this, but obviously, you can just use Redis commands to do it.</p>
<p>Here is code snippet to do that.</p>
<div class="code-block code-line-numbers" style="counter-reset: code-block 0">
    <div class="code-header language-ruby">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-ruby" data-lang="ruby"><span class="line"><span class="cl"><span class="n">from_queue_name</span> <span class="o">=</span> <span class="s1">&#39;default&#39;</span>
</span></span><span class="line"><span class="cl"><span class="n">to_queue_name</span> <span class="o">=</span> <span class="s1">&#39;low&#39;</span>
</span></span><span class="line"><span class="cl"><span class="n">count_block</span> <span class="o">=</span> <span class="nb">proc</span> <span class="p">{</span> <span class="no">Sidekiq</span><span class="o">.</span><span class="n">redis</span> <span class="k">do</span> <span class="o">|</span><span class="n">conn</span><span class="o">|</span>
</span></span><span class="line"><span class="cl">  <span class="n">conn</span><span class="o">.</span><span class="n">llen</span><span class="p">(</span><span class="s2">&#34;queue:</span><span class="si">#{</span><span class="n">from_queue_name</span><span class="si">}</span><span class="s2">&#34;</span><span class="p">)</span>
</span></span><span class="line"><span class="cl"><span class="k">end</span> <span class="p">}</span>
</span></span><span class="line"><span class="cl">
</span></span><span class="line"><span class="cl"><span class="k">while</span> <span class="n">count_block</span><span class="o">.</span><span class="n">call</span> <span class="o">&gt;</span> <span class="mi">0</span>
</span></span><span class="line"><span class="cl">  <span class="no">Sidekiq</span><span class="o">.</span><span class="n">redis</span> <span class="k">do</span> <span class="o">|</span><span class="n">conn</span><span class="o">|</span>
</span></span><span class="line"><span class="cl">    <span class="n">conn</span><span class="o">.</span><span class="n">rpoplpush</span> <span class="s2">&#34;queue:</span><span class="si">#{</span><span class="n">from_queue_name</span><span class="si">}</span><span class="s2">&#34;</span><span class="p">,</span> <span class="s2">&#34;queue:</span><span class="si">#{</span><span class="n">to_queue_name</span><span class="si">}</span><span class="s2">&#34;</span>
</span></span><span class="line"><span class="cl">  <span class="k">end</span>
</span></span><span class="line"><span class="cl"><span class="k">end</span></span></span></code></pre></div></div>
<p>This code snippet will move all the items from one queue to another until there are no more jobs.</p>]]></description></item><item><title>Clear Sidekiq queues</title><link>https://viktor.dev/en/2019-07-26-clear-sidekiq-queues/</link><pubDate>Fri, 26 Jul 2019 01:03:33 +0700</pubDate><author>email@viktor.dev (Viktor Chukhantsev)</author><guid>https://viktor.dev/en/2019-07-26-clear-sidekiq-queues/</guid><description><![CDATA[<p>Sidekiq is mostly used for moving long-running jobs into a background process. It uses Redis to manage its job queue. We often need to clear this queue of jobs to start afresh.</p>
<p>To clear the queue of jobs, I ran the following commands as listed in Sidekiq wiki.</p>
<div class="code-block code-line-numbers open" style="counter-reset: code-block 0">
    <div class="code-header language-ruby">
        <span class="code-title"><i class="arrow fas fa-angle-right" aria-hidden="true"></i></span>
        <span class="ellipses"><i class="fas fa-ellipsis-h" aria-hidden="true"></i></span>
        <span class="copy" title="Copy to clipboard"><i class="far fa-copy" aria-hidden="true"></i></span>
    </div><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-ruby" data-lang="ruby"><span class="line"><span class="cl"><span class="no">Sidekiq</span><span class="o">::</span><span class="no">ScheduledSet</span><span class="o">.</span><span class="n">new</span><span class="o">.</span><span class="n">clear</span>
</span></span><span class="line"><span class="cl"><span class="no">Sidekiq</span><span class="o">::</span><span class="no">RetrySet</span><span class="o">.</span><span class="n">new</span><span class="o">.</span><span class="n">clear</span></span></span></code></pre></div></div>
<p>Sometimes, these commands would clear the queue. Other times, you would need to clear the queue from Redis itself.</p>]]></description></item></channel></rss>