Re: [情報][AM] 新 航線查詢網站 jsu君

看板AviationGame (飛機遊戲 - 飛行遊戲 - 航空遊戲)作者 (Qu'est-ce que fuck?)時間15年前 (2009/10/20 17:05), 編輯推噓4(400)
留言4則, 4人參與, 最新討論串3/3 (看更多)
※ 引述《tuoba (拖把)》之銘言: : 不好意思,這邊請容我解說一下 : 舊的 am.otlotl.com 這邊的資料是我在維護的 : 新的 jsu.otlotl.com 這邊的資料是 jsu 維護的 : 目前兩邊用的是不同的資料庫, : 只是因為我這邊可以提供較大的頻寬跟空間 (其實就是 MySQL資料庫跟 ruby host) : 所以這查詢網站都是放在我這邊(基本上那就是一個付費網址跟空間) : 那 jsu 他要更新資料很麻煩的,其實他那邊比我辛苦 2 倍 : 因為他要先把資料抓回去他那邊,然後再更新上傳到我的網站 : 我這邊則是在伺服器上有設定自動更新,就是用一組程式每天固定時間就在那邊跑 : 他會去 AM 網站自動把資料抓下來,然後再填入本地端的資料庫內 : 但是到前為止,不知道為什麼,我這邊抓的資料總是會有一些錯誤的在裡面 : 這一點 jsu 的比我好很多,他的資料正確度幾乎是 100% : 另外一點是, 由於 jsu 有建立國家/機場/需求等資料關連 : 因此才能夠用比較方便的方式去查詢,這一點也是我的資料庫做不到的地方 : 我這邊目前用很蠢的方法在補救我的資料庫的當中會發生錯誤的問題 : 那就是他會自動重複去掃描做驗證,希望透過在再的驗證來降低錯誤率 : 簡而言之,目前兩邊是各自獨立運作的網站,說真的 jsu的網站優點比較多 首先先感謝拖把大的美言,跟協助建立查詢界面 之前我在更新時,因為懶得改 SQL 所以是先把 ninja.pwnass.com/am 的資料庫跑完後 然後再把我的資料庫 dump 到拖把大的站 (jsu.otlotl.com) 可是自從有一次不知某故無法 dump DB 於拖把大的站後 我就直接弄了第二個 DB class 去跑 目前的運作方式(自從昨天)是把 demand 跟 distance 都綁在我的 AM daemon 上面 每三分鐘會檢查是否有新的航點 若有,則去抓取新的距離資料 同時跑第二個 process 去更新國家與 demand 而 demand 值在上述條件皆未發生時,每日早上四點 會自動更新 demand 值 而以上的動作,都是去直接更新拖把大以及我的資料庫 也就是一個 sql statement 跑一次拖把家跑一次我家 由於要避免 AM 鎖我的帳號,所以我的程式比較複雜一點 我的程式首先有做所有的 exception handling 包含了重新登入,無法取得網頁,帳號暫時無法使用,載入網面錯誤等 另外,為了讓 AM 端看到我的連線是像人為的 我所有的流程都是以人工手動點選的方式去做 沒有直接跳到取得里程的頁面 這點也是為了取得前一頁所傳送的隱值,包含 post 及 js cookies 雖然在寫 Facebook apps 通常不會取這些取值 但在抓 bot 的傳統模式上,這個算是基礎的第一步 為了不要被鎖,所以有這些動作預防萬一 另外,在更新資料庫上面 原本的方式一來是有不知名的問題導致無法使用 二來是我想若能做 live update 的話 即便是一個航站的資料未完全建起來之前 使用者還是可以查到最新的不完整資料 比起要等到完全更新才能查,這點我是覺得可能方便多 所以第二次改程式,一次更新二邊的資料庫 這個也有缺點,就是每筆 sql query 針對拖把大網站的時間 大約是我對家裡下 query 的三到十倍久(網路傳輸) 所以新的更新方式,會造成更新速度比起拖把大的程式緩慢 (若是以同時開始更新來說) 原本是有想過開放我家的伺服器給大家查 不過考慮到頻寬有限,連過來會很慢 加上我寫這程式也只是想說方便拖把大拿來做資料驗證 於是只有曾經很短暫地開於,當時為了因應新航點,而拖把不在 目前能想到加速的方式,就是回到最初更新我本地端的資料庫 再去更新拖把大的資料庫,只是如此資料的即時性就會比較差 或著是,我再去刻一份 Python 版本的 這樣就可以用 multithreading 一邊查網頁一邊送 query 不過因為程式等於全部重寫,要花的人工時會很長 這點我會想一下,有空再去做 至於資料正確性的問題,我有看拖把大的程式 也猜測沒看到的部份應該有做 error handling 所以其實我也不知道為什麼資料有時會有誤 畢竟我這裡也只是用 regex 在取值 最後,若是各位同好有什麼新的想法 覺得會對玩 AM 有很大的幫助的工具 都可以提出來的,拖把人很好,我們都會願意下來幫忙寫 如果是要重刻一份像話的 AM @ FB 這樣的東西嘛 呃,好吧,其實我有在偷做了... Jsu -- 乘長風,破巨浪 我海軍勇向前航 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.160.203

10/20 17:33, , 1F
別謙虛了 兩個都很厲害啦
10/20 17:33, 1F

10/20 17:49, , 2F
我都看沒有 不過很感謝你們...
10/20 17:49, 2F

10/20 17:51, , 3F
兩位大大辛苦了!!
10/20 17:51, 3F

10/20 21:34, , 4F
辛苦了,非常感謝
10/20 21:34, 4F
文章代碼(AID): #1AtNrXm6 (AviationGame)
文章代碼(AID): #1AtNrXm6 (AviationGame)