搜尋

搜尋結果

Spring Boot Web App 更新期間的維護模式:從唯讀到全鎖的解決方案
科技新知
MacauYeah・2025-08-25

在營運 Web App 的時候,雖然我們有 Docker K8s 可以滾動更新,但難保用戶在更新的過程中,有一半訪問去到了舊版,另一半去了新版。如果可以,Web App 本身自帶維護模式,可以自我判斷什麼時候應該忽略新的訪問,當然最好。但要做到這一點,前期需要很多規劃。狠心一點,可以直接關掉對外的服務,讓用戶無法訪問。 但在另一些情況下,例如升級搬遷的情況,下線時間比較長,完全關掉服務並不是一個很好的方向,我們至少還可以提供唯讀的選擇。而且這個可以從資料庫出發,讓 Web App 少處理一點邏輯。 如果 Web App 背後的資料庫是 MSSQL 或 MySQL,唯讀這件事應該是簡單的,只要你把 service account 的權限改變就好。但如果你用Oracle,就要想想辦法。 筆者想到的方法,暫時有兩個。第一個就需要大家寫寫 Script ,一口氣把所有 Table 給鎖起來。例如 第二個,就是生成一個新的唯讀 User schema,給他所有Select的權限。然後更新 Web App 使用那個唯讀 User schema存取資料。 兩個方法有什麼差異呢? 前者就全部鎖起來,沒有任何一個資料庫用戶可以改寫資料。如果你的業務沒有差異性,全部一起封起來就完事。但如果你只想 Web App 轉成唯讀,但其他背景程式還可以執行更新。那你就只能用後者了。但後著也不是百分百的完全無痛,至少你 Web App 要支援登入與操作的 Schema分離。 例如用Spring boot JPA的話,可以在 application.properties 可以讓登入及操作的Schema不一樣。 spring.datasource.username=READ_ONLY_USER spring.jpa.properties.hibernate.default_schema=ORIGINAL_SCHEMA 又或者在 java 層面指定。 @Tableschema = quot;ORIGINAL_SCHEMAquot; 這看上去,是很有彈性的。但其實也是有些局限。如果你本來的JPA有寫特制的 JPQL 或 Raw Query,又或者你在Java層面加了 @Subselect,由於這些都是程式原作者所 hard code 的,JPA沒法幫你改寫。改來改去,可能還是前述寫Script的方法,一口氣把所有 Table 給鎖起來實際一些。 Reference 更多筆者的程式開發分享,見請 github

重入膠坑 8 | HG Mighty Strike Freedom 取件表
手機‧電玩
MacauYeah・2025-05-16

之前就為大家介紹過,想有效率地消除Gunpla山積,事前計劃好一個概定的流程,絕對是件很重要的事。 而流程中,預制取件表,絕對素組檔的一件神器,筆者習慣後,可以極大地減少筆者換剪、打磨工具的次數,也減少找不到零件的機會。 筆者就分享一下自己制作的Mighty Strike Freedom 取件表 Google Drive連結,有需要的讀者,可以直接下載或列印。 在這邊再簡介一下如何利用取件表作為素組之用 準備粗剪、薄刃剪、打磨砂紙400, 600, 800號、十二個零件盒 按照取件表,分區粗剪取件: 完整地粗剪頭部所有零件 放入頭零件盒 完整地粗剪身體所有零件 放入身體零件盒 依次粗剪各部份零件,放入對應的零件盒...... 分區薄刃剪修件 完整地修剪頭部所有零件 完整地修剪身體所有零件 依次完整地修剪各部份所有零件...... 選擇性分區打磨零件 完整地打磨頭部所有零件 完整地打磨身體所有零件 依次完整地打磨各部份所有零件...... 回到說明書,分區組合 依次地分區組合 選擇性記錄需要額外補色的位置。 選擇性滲線、補色 於粗坑線條上水性滲線液 Marker筆補色 選擇性保護漆 最後一定要提醒,在第4步組合以外,就必需要決定是否進行打磨,若是組合完再拆散,就有斷件風險。亦有因為上述流程不刻線,其實第5步很安全,沒有進一步打磨修補問題。 最後附上筆者速刷前四個步驟的HG Mighty Strike Freedom美照。

Home Media 系列驚爆娛樂陪您過「哈囉喂」 🎃👻
生活在我城
Cheers!・2024-10-28

今個 Halloween 留喺屋企一樣咁「盞鬼」!Home Media 集齊一系列驚險遊戲、懸疑猛片、解密綜藝等,為您開啟刺激冒險之旅,依家新客戶仲可用 350 CTM 積分換購 Home Media 免費體驗,快 d 去換購,同家人朋友一齊挑戰驚悚極限啦 ! OnePlay 雲遊戲平台服務(30 小時)(優惠價:$68) 免費 3 個月 myTV SUPER 服務(App 網頁版) 首月免費 Blacknut hmvod 芒果 TV 國際服務,期後享優惠月費 $28 月 6 個月 myTV Gold 服務(電視盒子 智能電視版 App 網頁版)(優惠價:$280) 仲有 Home Media 電視盒子連 myTV SUPER 服務等更多積分優惠:httpss.ctm.netotdXe 萬聖節心跳推介: 冒險類雲遊戲 #OnePlay:《Batman》化身蝙蝠俠對抗危險惡棍 #Blacknut:《Among the Sleep》直面童年恐懼 都市懸疑劇 myTV SUPER 帶您重溫經典懸疑劇《金宵大廈》《降魔的》等, 仲可升級 myTV Gold 專享更多海外驚悚劇 《2323(雙語版)》《天黑了》等 萬聖節必睇猛片 #hmvod:《鬼靈精怪大酒店:怪獸變錯身》展開歡樂緊張奪寶之旅 ,《窺探者》改編自愛爾蘭古老恐怖傳說 推理解密綜藝 #芒果TV國際 《密室大逃脫》《YES OR NO 第三季》靠線索逃出密室 推理故事 好歌分享 #JOOX:Serrini《日月無光》、陳蕾《妖治時代》擊退內心魔鬼 下載 Home Media App 體驗一系列精彩娛樂:httpss.ctm.net0X0oD,一個賬號盡享最新體育賽事直播、電視劇、電影、綜藝等! Home Media 娛樂服務詳情:httpss.ctm.netsIrfC

Git Worktree
科技新知
MacauYeah・2024-04-09

看了Git 大神的影片 part two,才知道原來切換git分支還是有不同的做法。傳統中,我們使用git checkout BRANCH_NAME_1 來切換到我們想要的分支。通常這樣做,代表我們放棄原來的工作環境,換到另一個工作環境中。 這樣做很好,對不對? 是的。但有些時候,我們只是被逼離開原本的工作環境,跳到一個過去的分支節點去查一些東西,或者修正一些東西。更什的是我們原本的工作環境都還是混亂狀態下,我們不想做commit(提交),我們只好用git stash,暫時將工作環境存起,然後再git checkout BRANCH_NAME_1。在你想做的事做完後,再git checkout OLD_BRANCH。 看起來其實也沒有很麻煩,是不是? 但其實當你的專案有一定大小,你在不同版本跳來跳去,你的IDE就會不斷地重新編譯。更不幸的是,當你的不同版本中有模組數量的差異,弱一點的IDE,什至會攪死它的cache,之後就會發生鬼打牆。為解決IDE引發的問題,筆者有時會直接cp r YOUR_PROJECT TEMP_PROJECT,在一個新資料夾下另起爐灶。那就是有兩個不同的資料夾裝載著你的專案。 這樣應該沒有問題了吧,是不是?這次是真的可以了,扣除了筆者個人健忘的問題,就沒什麼問題了。 不知大家有沒有經驗,連續commit了幾次,但最後一次commit卻忘了push(與伺服器同步),然後就跳到其他地方繼續工作。如果我們在同一個git repository下,我們commit了但忘了push,即使我們git checkout去了其他分支,用git GUI畫出commit graph時,也至少可以提醒筆者有一個未與伺服器同步的分支。但如果當初我們用的是cp,那就沒戲唱了,什至乎當初複制了去哪裏都忘了。(當你老闆同時要你跟多個專案,健忘真的很容易發生。) 這問題有解嗎?有的,git在2.5版本以後,就提供了一個git worktree的指令。它有點像cp 指令,更重要的是,它打通了兩個資料夾下的隱藏資料庫.git,當大家在那兩個資料夾底下,都可以看到另一方的存在。大家可以用git branch a或git log oneline graph來看看。 詳細的指令介紹:git worktree git 大神的影片 Part 2

挑戰兒時遊戲丨啪到出血【馬介休 真係Game EP3】20180817
歡樂馬介休
bacalhau・2018-08-20

今集有VIVI啊,睇啦!小朋友唔好學的遊戲 暴力小明!黑Gap豪哥啪到出血龍哥扑野手指真係好叻華浚終於T,T古惑的BoBo又多粒馬介休波了 《歡樂馬介休 真係Game 系列》各玩員一開始各自交出$500蚊;每集勝利的人會得到一粒馬介休球;五集內得到最多馬介休球的玩員就可以全數拿走$2500蚊!再決定用幾多錢俾自己爽爽,用幾多錢去懲罰輸家! 到底邊個可以笑到最後呢?㩒個鐘仔每個星期一齊睇,逢星期五,馬~休~介,真係Game!第一集【瘋狂何濟公】:httpsyoutu.bepPu7T7U0ZZs第二集【激戰閃避球】:httpsyoutu.be8PXh_0TsHxkmdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash; 『無獎媾有女抽遊戲時間💰』 問題 EP 3 :你估下下一集邊個玩員做嘉賓?(啊花、啊誠、Miyo、芊華、靚仔達、啊Bob、林明禎、三上) 留言估及分享此影片,估中又被抽中的朋友可以得到Bobo開光馬介休Yes!Card一套上集得奬結果將於FB及Youtube留言區公佈,唔中嘅今次請繼續~mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash;mdash; ⛱睇片睇到攰啦?入黎抖下,練個骨吹下水〔馬介休閒保健中心〕httpsgoo.glYQyy6R 快快訂閱【歡樂馬介休Youtube專頁】右上角紅色訂閱按鈕啊BB速速讚好【歡樂馬介休Facebook專頁】httpsgoo.gl5y9aWC慢慢追蹤【歡樂馬介休Instagram專頁】httpsgoo.glkHYhRc〔馬介休女玩員粉絲專頁〕BOBO粉絲團:httpsgoo.glSSZsgLVIVI粉絲團:httpsgoo.glB75RKm啊花粉絲團:httpsgoo.gl8nyf5i芊華粉絲團:httpsgoo.glg6fjb6 〔馬介休男玩員粉絲專頁〕※就睇下有無人like男仔龍哥粉絲團:httpsgoo.glRMn4eX華浚粉絲團:httpsgoo.glFc2Zbw黑GAP粉絲團:httpsgoo.glvi5XTURICO粉絲團:httpsgoo.gl2mjPeV墨豆鵬粉絲團:httpsgoo.gl9irTaw騰訊視頻/土豆網/優酷網/美拍:欢乐马介休#真係Game #馬介休 #綜藝

新加坡航空飛澳洲來回連稅HKD3,280起!奧克蘭HKD3,716!
激安優惠
OHChance 旅遊誌・2018-07-31

新加坡航空推出香港出發的澳洲、新西蘭優惠,價錢真係直迫廉航價,而且今次優惠可以去程或回程中停新加坡(因為稅費會貴dd),唔介意轉機ge 真係非常值得考慮。 《優惠價錢(來回連稅)》*悉 尼 HKD3,280*墨爾本 HKD3,381*坎培拉 HKD4,510*布里斯班 HKD3,514*達爾文 HKD3,432*阿得萊德 HKD3,397*伯 斯:HKD3,357*凱恩斯:HKD4,550*奧克蘭:HKD3,716 註:達爾文及凱恩斯由勝安航空(Silk Air)執飛。所以航點均需要新加坡轉機。  《出發日期及最長停留》.出發日期:8月5日至9月25日、10月4日至11月30日、1月1日至31日、2月10日3月31日.最長停留:21天  《購票日期及方法》.購票日期:8月31日2359前預訂.購票方法:至新加坡航空官網.預訂網址:httpwww.singaporeair.comzh_TWhkhome  【輔助訊息】.是次優惠可以不同點來回(例如悉尼入、墨爾本出)及於去程或回程中停新加坡,使用預訂系統的 ldquo;多點進出入境停留rdquo; 功能即可;.新加坡航空經濟艙票價已包機上餐飲及30KG托運行李額;.新加坡航空可以乘搭機場船直接由澳門到香港機場海天客運碼頭 checkin 並獲退HKD120 香港離境稅;.澳洲簽證申請經驗:httpsohnote.infoaustraliavisa  附註:上述最低價錢為航空公司公告之最優惠價格,或本站能找到的最低價格;每一航班有否優惠票價及所存票量由航空公司決定,優惠票量有限售完即止。  價錢 Sample ndash; 香港飛墨爾本來回連稅HKD3,280 ===== 想搵平機票去玩,即上 OH!Chance!澳燦旅行資訊 httpsohchance.info 去日本旅行買咩 JR Pass好?唔知間航空公司好唔好坐?即上 OH!Note!小燦的旅行筆記做功課 httpsohnote.info 睇埋 Facebook 專頁 httpsfb.comohchance 第一時間獲得最新旅遊資訊!