<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>kastrcn (kastrcn)</title>
    <link>https://ruby-china.org/kastrcn</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>ruby-china 的搜索为什么没有 turbolinks？</title>
      <description>&lt;p&gt;社区、招聘、wiki、酷站模块有&lt;/p&gt;

&lt;p&gt;ruby-china 的搜索为什么没有 turbolinks？翻页却有&lt;/p&gt;</description>
      <author>kastrcn</author>
      <pubDate>Fri, 29 Mar 2019 22:02:21 +0800</pubDate>
      <link>https://ruby-china.org/topics/38319</link>
      <guid>https://ruby-china.org/topics/38319</guid>
    </item>
    <item>
      <title>Rails job  默认的 Active Job 如何不并发调同一方法 顺序执行方法</title>
      <description>&lt;h2 id="问题"&gt;问题&lt;/h2&gt;
&lt;p&gt;X-Y Problem &lt;a href="http://coolshell.cn/articles/10804.html" rel="nofollow" target="_blank"&gt;http://coolshell.cn/articles/10804.html&lt;/a&gt;&lt;/p&gt;
&lt;h2 id="x:"&gt;x:&lt;/h2&gt;
&lt;p&gt;如何不并发调同一方法 顺序执行方法&lt;/p&gt;
&lt;h2 id="y:"&gt;y:&lt;/h2&gt;
&lt;p&gt;默认的 job 如何设置进行排队执行 perform 里面的任务
等上一个执行完才能执行下一个任务如何执行
而不是同时执行&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;queue_as&lt;/span&gt; &lt;span class="ss"&gt;:default&lt;/span&gt;
&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;perform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="n"&gt;args&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="c1"&gt;# Do something later&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="解决办法"&gt;解决办法&lt;/h2&gt;&lt;h2 id="1. 加锁"&gt;1. 加锁&lt;/h2&gt;
&lt;p&gt;文件锁、变量锁、redis 锁&lt;/p&gt;
&lt;h2 id="2.设置线程"&gt;2.设置线程&lt;/h2&gt;&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;active_job&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;queue_adapter&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;ActiveJob&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;QueueAdapters&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;AsyncAdapter&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;new&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="ss"&gt;min_threads: &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
  &lt;span class="ss"&gt;max_threads: &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="3.方法结束前入队"&gt;3.方法结束前入队&lt;/h2&gt;
&lt;p&gt;在这个任务完成的时候，入队下一个任务，这样可以得到间隔时间恒定的任务。&lt;/p&gt;
&lt;h2 id="采取方案"&gt;采取方案&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;在这个任务完成的时候，入队下一个任务，这样可以得到间隔时间恒定的任务。&lt;/strong&gt;&lt;/p&gt;</description>
      <author>kastrcn</author>
      <pubDate>Thu, 08 Nov 2018 20:35:17 +0800</pubDate>
      <link>https://ruby-china.org/topics/37741</link>
      <guid>https://ruby-china.org/topics/37741</guid>
    </item>
  </channel>
</rss>
