好奇。妳們沒有規定不用 it 嗎?
殘念 我 晚上 10:00 的飛機....應該來不及
++
如果在上海,還是可以約出來玩的?我待到 20 號的晚上
真期待見到大家
加上了詢問 mysql config 的設定
加上了詢問 mysql config 的設定
不小心寫兩次
一个transaction里包多个update语句 能比 一条update语句 快吗?
看你是要把壓力放在 web 還是 db。這就跟有時候我們會去用多個 SELECT 換 JOIN 的狀況一樣。
比如說一次執行一次執行這句 SQL 要 60 秒,甚至會造成 down time。那麼我就會寧願比如說拆成 200 條慢慢跑,但是每一條幾乎都不會造成 DB lock。
當然這種招數只能用在「不在乎正確性」的數字上,比如說 hit, count ...要求精度的數字就沒辦法了...DB 的 ACID 是沒有辦法一次全滿足的。
我不負責任的給一個解法,爆炸不要來找我
https://github.com/agibralter/ar-resque-counter-cache 然後塞
ArAsyncCounterCache::IncrementCountersWorker.cache_and_enqueue(klass, id, column, direction)
作 async update XD
update_attribute 會引發 callbacks, 你可以改用 update_column, 那麼這樣就不會觸發 callbacks 我想這是你原先會遇到的效能問題。
plus, Article.where("id in (?)", redis_find_all_id)
會勾出 SELECT *
。所以 memory 會 bloat ...
但是我想講了這麼多,建議還是直接開個有一百萬筆資料(其實也不用到 100 萬,30 萬就夠了)的 db,直接跑個 for each,大家就不用浪費這麼多唇舌在這裡戰了....
這是我從演講中抽出的文章。我想 #6 樓 很大程度斷章取義了我的文章。我甚至認為你沒有用過我裡面提到的 API 設計過 application,只是按照「字面意義」逐條批駁設計(如 transaction, delegate)。也沒有處理過巨量資料的經驗。
這篇文章是有使用情境的。我寫 Rails 超過五年了,在怎麼樣的情境下要設計出什麼樣的 code 我還是曉得的。
我的原意是在處理大量資料時,「ActiveRecord」是「完全不適合」被使用的。原因是 ActiveRecord 本身原先就是設計來處理「事務上」的需求,所以 ActiveRecord 內建了大量的關係,Validation,Callbacks,這在開發網站上面使用非常的便利。
但是如果 task 的主要目的是屬於「處理數據」的話,那麼我建議應該直接回歸到原點「寫 SQL statement」。因為使用 Ruby Object 再這麼包一層,是嚴重浪費 CPU 以及 MySQL 效能。
當然,事情永遠不是這麼單純美好。有時候我們還是想要「偷用」ActiveRecord 便利的設計,來讓我們的工作省事點。
那麼在這個前提下,開發者必須要知道,ActiveRecord 的哪一些設計,會使你原先「直觀」的寫法,直接變成破壞效能的殺手。在設計 DB task 必須要用一些「設計技巧」能繞即繞,否則 task 一跑下去,機器直接死機是必然的。
這整篇文章和 Talk 都是繞著這個出發點所構築的。
所以 #6 樓 整串爭論下來我只有股被紮草人打的莫名其妙感...
台灣不選週五 是因為 週五通常是私人休息時間。是跟朋友唱歌看電影的時間。
主辦人不願意自己辦在這個時間,而且參加者通常也不喜歡來這個時間的活動。
問題出在 Sprocket Importer 很慢。然後遇到 compass 這樣有多目錄的就是悲劇了。 然後大家又很愛 @import "compass" 下去。XD
比如說 zurb/foundation 就用很兇。(import 了一堆 "base", 然後 "base" 開頭就 import "compass" ...XD。然後使用者再抱怨 sass-rails 超慢.......要 sass-rails 作者出來解決。
一整個就令人 XD
然後 require_tree 也是一個問題。當 controller 很多時空 assets 也是很令人厭煩....
你可能不是用這個版本的 hack ...
假的
我已經請廠商修好這個 bug 了。下一次 update 我會再上來通知進度....
另外我已經寫信給 hosting 廠商請他幫我查為何大陸地區讀者幾乎人人掉信的事...
目前的 compiler 沒有目錄功能。我現在就可以上目錄,但是都要手工,所以決定最後完稿才會再上一次目錄。
@xds2000 但是不知道何時有 event 可參加?
Technical details of permanent failure: Google tried to deliver your message, but it was rejected by the recipient domain. We recommend contacting the other email provider for further information about the cause of this error. The error that the other server returned was: 550 550 5.1.1 [email protected]: Recipient address rejected: User unknown in virtual alias table (state 14).
沒辦法。弄支付寶會花上我太多力氣 orz
http://blog.xdite.net/posts/2012/01/09/remove-your-after-save-from-model/ 也可以試看看 Facade Pattern ...
我提出幾個建議。
其實你可以改成用 model validator 去做,把錯誤加在 product.erros 裡面 http://juixe.com/techknow/index.php/2006/07/29/rails-model-validators/
你的代碼太高耦合了。不 refactor 掉以後沒人能維護...
巨汗.....
可以給我 code sample 嗎?你這樣敘述我聽不是很明白
使用 whenever 才可以跟著 project 跑,可以 git 版本控制。而不是每 deploy 一臺就要去改一次。
plus, deploy 時如果有更動 whenever 檔,會自動幫忙更新 crontab。機器一多才不會死人....
我們自己公司專案一年前就是用 whenever + backup 在備份資料和執行例行程式了...
@jhjguxin 請用
哦。我的標題的確寫錯了。感謝你的指正