不用开 10 个队列吧,你 sidekiq 这个队列开 10 个 proccessor,每次每个 proccessor 会压一个邮件 id 出队列,天然的就是你要的结果 当然这不是精确的,比如快的会多发几个,慢的会少发
想精确就得自己指派
请个熟行的网管帮你搞,硬件的省下的钱,够给他还有剩下的
一个写一个读,一个国内一个国外,把上传到国内的简历转存到国外的 s3 上去,两边就都快了
写得不好,什么都可能成为毒瘤 任何技术都不是毒瘤,是毒瘤的是滥用技术的人 什么技术用得好,你都会觉得,卧糟,原来还可以这么用 用得不好,你会觉得,卧糟,这什么乱 78 糟的
不错,docker 将来会有越来越多的应用
Ruby 是可以代替的,用 java 也能开发 ,android/ios 主流上没有可代替的,希缺资源就是会贵得多的
那就去看下这几个选项的用法
https://www.phusionpassenger.com/documentation/Users%20guide%20Nginx.html
7.5. Resource control and optimization options
7.5.1. passenger_max_pool_size <integer>
7.5.2. passenger_min_instances <integer>
7.5.3. passenger_max_instances <integer>
7.5.4. passenger_max_instances_per_app <integer>
7.5.5. passenger_pool_idle_time <integer>
7.5.6. passenger_max_preloader_idle_time <integer>
7.5.7. passenger_start_timeout <seconds>
7.5.8. passenger_concurrency_model <process|thread>
7.5.9. passenger_thread_count <number>
7.5.10. passenger_max_requests <integer>
7.5.11. passenger_max_request_time <seconds>
7.5.12. passenger_memory_limit <integer>
7.5.13. passenger_stat_throttle_rate <integer>
7.5.14. passenger_pre_start <url>
如果你已经在生产模式,看下是不是没有设置初始的实例数
P2P O2O C2C 都是用来扯蛋的概念,系统无外接口和页面,有什么不可以的。量不是太大的时候,Ruby 都能照得住
先右值 直接
a + 1
也是错的,ruby 里没有赋值的都是 nil,不需要等 a=才会给 a 赋值 nil
这个不错
昨天在 greenruby 上看到了这篇,没来得及细看,今天再看下,确实很棒
改删除为 rename,等过一段时间确认没有问题再删除
Puma 的 Thread 数量配置应该是是上层请求的线程数量,就是一个线程处理一个请求,这个请求处理上面的 action 所以这个 action 的处理的时间不与配置数量相关
我的理解 puma 应该不能控制 action 里自己并发出多少个线程,action 生产的子线程归自己管理
不过用 pg 的朋友不要尝试使用上面的用法 ,不然主进程会僵死,好像和 pg 的 gem 有关,这个我在生产中遇到过.....除非我打开的姿势不对
试一下 加一个 created_at 和 vote_count 的联合索引
明天到此上班,招聘一下午完成,为自己新公司 up 一下
由此可见增加见识对一个程序员也是很重要的事
如果是 has_one 和 belongs_to...那不是本来就是一张表吗 只是可能后者太大要分离 我记得 Nested Model Form 可以比较方便的处理 但是不能没有 model
你发不同的公共私钥就成了,分个组
你可做一个跳板机,服务器只能让跳板机过来的 ip 登录,工程师的私钥放在上面,然后下发一样的公共的私钥,放在每台服务器上 工程师用个人私钥通过跳板,再用公共私钥登录服务器 公共私钥可以定时更新
不同,费率都不一样
最早用的 passenger,中间用了 thin/puma/rainbows,意在提高并发,但 Ruby 多线程并发并不可靠,整体性能和可靠性还不如 passenger 开线程安全模式。
rails4 已经不让这么用 attr_accessor 了,attr_accessor 只能用来声明虚拟属性 在 controller 里使用 hash 创建 model 对象,必须在 controller 显示声明你允许的属性,具体方法参见 strong paramters 的文档 http://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html
亲不敬,熟生厌 一门语言,偶尔用一下会觉得很厉害的样子,但是用多了,特别是用来当饭碗的时候,发现这里有问题,那里不成
在 github 取一份 rails 的 git,经常看他们的提交,是个不错的方法 以前的代码只能遇到问题多到代码里去找原因 rails 的代码全读是很难的,因为到处都是魔法糖,但是偶尔读一个小模块,是很容易而且有意的
不会的,像我以前面试都是为了看这个人能不能帮助到自己 对于中小公司的中层来说,你向老板要 3 个人,那你就要干出三个人的活,如果招来的人干不了,那活就是你扛 所以,面试的时候不是能狠就狠,而是确实需要对方有这些技能 或者能迅速掌握这些技能
看销售是卖你做的成品 还是你做的是销售拉来的单子
哪个先,哪个后的问题。
我的产品技术无可代替,哪个来销售都成 还是我的单子无可代替,随便找个技术来做做就成
[13] pry(main)> hsh= {}
=> {}
[14] pry(main)> hsh['a']
=> nil
[15] pry(main)> hsh['a'].class
=> NilClass
[16] pry(main)> hsh['a'] << "1"
NoMethodError: undefined method `<<' for nil:NilClass
from (pry):16:in `__pry__'
[21] pry(main)> a = []
=> []
[22] pry(main)> hsh= Hash.new(a)
=> {}
[23] pry(main)> hsh['a']
=> []
[24] pry(main)> hsh['a'] << 1
=> [1]
[25] pry(main)> a
=> [1]
[26] pry(main)> hsh['b'] << 2
=> [1, 2]
[27] pry(main)> a
=> [1, 2]
[28] pry(main)>
这样看你就明白为什么了,其实你上面的操作把值最给了 a
go、swift、python
再黑百度也没有用,人家能发 50 个月的年终奖