<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>karrra (xp)</title>
    <link>https://ruby-china.org/karrra</link>
    <description></description>
    <language>en-us</language>
    <item>
      <title>Sidekiq 同时执行两个任务时总有一个失败</title>
      <description>&lt;p&gt;不好意思最近问题有点多......&lt;/p&gt;

&lt;p&gt;有一个 worker 放在 after_commit 创建时执行，然后因为需求原因大部分时候都是同时创建两个对象，所以也需要同时执行两次 worker，然而查看日志发现每次都是执行了后一个对象的 worker，另外一个就直接 failed 了，有跟同事讨论过怀疑是 sidekiq 并发的问题，可是不知道怎么调试比较好，改成 perform_in 延迟也是一样&lt;/p&gt;</description>
      <author>karrra</author>
      <pubDate>Fri, 25 Dec 2015 11:19:57 +0800</pubDate>
      <link>https://ruby-china.org/topics/28518</link>
      <guid>https://ruby-china.org/topics/28518</guid>
    </item>
    <item>
      <title>Sidekiq RecordNotFound</title>
      <description>&lt;p&gt;google 了半天都说是 sidekiq 执行太快了，按照 github 上面的 trouble shooting 用了 after_commit 和 perform_in 来延迟执行但是还是偶尔会出现找不到对象，然后我在 idle 里面点了 retry all 过一会还是会抛一样错，可以确定数据库里面是有这些纪录的，请问这种情况要怎么排错比较好？&lt;/p&gt;</description>
      <author>karrra</author>
      <pubDate>Thu, 17 Dec 2015 11:19:45 +0800</pubDate>
      <link>https://ruby-china.org/topics/28431</link>
      <guid>https://ruby-china.org/topics/28431</guid>
    </item>
    <item>
      <title>ElasticSearch 相关问题</title>
      <description>&lt;p&gt;因为业务需求所以研究了好久，不过相关资料真的不太多，只好来求助&lt;/p&gt;

&lt;p&gt;一共有四个 model&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Product&lt;/span&gt; &lt;span class="no"&gt;Iterm&lt;/span&gt; &lt;span class="no"&gt;Artist&lt;/span&gt; &lt;span class="no"&gt;Tag&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Tag 和其他三个 model 互相关联
客户端上用的搜索接口，通过关键字可以搜索任意 model 的 name 字段，然后关键是如果搜索匹配到的是 tag，就要返回相对应的其他三个 model 的数据，这种情况不知道该怎么配置？&lt;/p&gt;

&lt;p&gt;然后就是模糊匹配的问题，不知道为什么搜中文可以，英文就不行，不知道是不是哪里配错了，比如搜索广可以找到广州，可是搜 a 就找不到 abc
想要的效果是像官网那样的
&lt;img src="https://l.ruby-china.com/photo/2015/b7119805f0db21737dab265ff71e3510.png" title="" alt=""&gt;&lt;/p&gt;</description>
      <author>karrra</author>
      <pubDate>Mon, 16 Nov 2015 17:03:40 +0800</pubDate>
      <link>https://ruby-china.org/topics/28075</link>
      <guid>https://ruby-china.org/topics/28075</guid>
    </item>
    <item>
      <title>[已解决] 关于多表关联的问题求助</title>
      <description>&lt;p&gt;业务需求是有一个 tag 表和多个 model 有多对多的关联，然后我加了一个中间表&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;create_table&lt;/span&gt; &lt;span class="ss"&gt;:tag_subject_relations&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt; &lt;span class="o"&gt;|&lt;/span&gt;&lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="o"&gt;|&lt;/span&gt;
  &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;integer&lt;/span&gt; &lt;span class="ss"&gt;:tag_id&lt;/span&gt;
  &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;integer&lt;/span&gt; &lt;span class="ss"&gt;:subject_id&lt;/span&gt;
  &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;string&lt;/span&gt; &lt;span class="ss"&gt;:subject_type&lt;/span&gt;

  &lt;span class="n"&gt;t&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;timestamps&lt;/span&gt; &lt;span class="ss"&gt;null: &lt;/span&gt;&lt;span class="kp"&gt;false&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;通过不同的 subject_type 来确定不同的 model,  用起来是没什么问题，不过在 tag 的 model 那边我想写 has_many 来关联 model 的时候怎么写都不对，最后只能写了个方法来找&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;model&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;joins&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="ss"&gt;:tag_subject_relations&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;where&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'tag_subject_relations.tag_id = ?'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;self&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;平时调用是没什么问题，但是最近在研究 elasticsearch 关联搜索的时候有写 has_many 的几个表都正常，这边就搜索不出结果，所以想问一下像这种情况 has_many 要怎么写？&lt;/p&gt;</description>
      <author>karrra</author>
      <pubDate>Wed, 04 Nov 2015 16:23:08 +0800</pubDate>
      <link>https://ruby-china.org/topics/27951</link>
      <guid>https://ruby-china.org/topics/27951</guid>
    </item>
    <item>
      <title>[已解决] Rails 缓存随机数据的问题</title>
      <description>&lt;p&gt;不知道是不是关键字没找到，google 了好久都没找到相似的&lt;/p&gt;

&lt;p&gt;现在有个需求是随机获取一个 model 的 20 条数据&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Product&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'RAND()'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;然后因为希望一天之内获取的数据是不变的，我就想着加个缓存&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="no"&gt;Rails&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;cache&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;fetch&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"rand_products"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="ss"&gt;expires_in: &lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;day&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;do&lt;/span&gt;
  &lt;span class="no"&gt;Product&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;order&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'RAND()'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;limit&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;20&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;span class="k"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;可是每次读缓存到时候得到的数据都是不一样的，求各位指点一下&lt;/p&gt;</description>
      <author>karrra</author>
      <pubDate>Fri, 30 Oct 2015 14:25:43 +0800</pubDate>
      <link>https://ruby-china.org/topics/27896</link>
      <guid>https://ruby-china.org/topics/27896</guid>
    </item>
  </channel>
</rss>
