这样肯定比你从数据库各种 Join 得到的结果快的多,毕竟 O(m+n). 要不只能写过程了,像写 ruby 代码一样在 sql 里遍历一遍。。。
很好的系列文章! 挑个毛病,最后复杂度好像是 lgN.
gem 'sidekiq-unique-jobs'
代码已经留给前公司做遗产了。我当时用的是 AR,dump 的时候会 dump 所有数据,只好用了比较丑的写法,把实例变量扣出来,然后在 job 里组装。不知道 mongoid 会不会有这种情况。只是 2 进制的话 base64 就行了。
这个问题我也遇到过,dump 出来的字符是二进制的,问题好像是 sidekiq 默认使用 ruby 的一个全局设置 Encoding::default_external(默认 utf-8) 来对 Redis 写入,然后就有问题了。
倒数二楼是让你自己写个子类去实现参数字符转换,然后把正确格式的参数传进 perform 这个方法。
试试 pointsize 和 density