一夜沒了 8 萬(wàn)!
[導(dǎo)讀]大家好,我是小林。就在昨天,我終于把8萬(wàn)花光了!為什么要強(qiáng)調(diào)「終于」呢?主要是要把這8萬(wàn)花出去真的不容易,廢勁了我的所有心思,上周每天不管是上班還是下班時(shí)間,都在想這個(gè)事情,以至于新的圖解文章一拖再拖…..不是我凡爾賽,這是上周一直在說(shuō)的6月份的阿里云服務(wù)器白X(這詞不能用了)活...
大家好,我是小林。就在昨天,我終于把 8 萬(wàn)花光了!為什么要強(qiáng)調(diào)「終于」呢?主要是要把這 8 萬(wàn)花出去真的不容易,廢勁了我的所有心思,上周每天不管是上班還是下班時(shí)間,都在想這個(gè)事情,以至于新的圖解文章一拖再拖…..不是我凡爾賽,這是上周一直在說(shuō)的 6 月份的阿里云服務(wù)器白 X(這詞不能用了)活動(dòng),活動(dòng)期間拉到 1000 個(gè)新人購(gòu)買服務(wù)器,官方就會(huì)給我發(fā)放 8 萬(wàn)的獎(jiǎng)金,而我就想把這 8 萬(wàn)的獎(jiǎng)金返現(xiàn)回給大家,相當(dāng)于給每個(gè)人返現(xiàn) 80 元,這樣大家購(gòu)買 79 元/年那款服務(wù)器就等于免費(fèi)。整個(gè)過(guò)程從「拉人環(huán)節(jié)、購(gòu)買服務(wù)器環(huán)節(jié)、核對(duì)訂單環(huán)節(jié)、返現(xiàn)環(huán)節(jié)」,全程基本是我一個(gè)人在搞,每個(gè)環(huán)節(jié)都花費(fèi)了很多時(shí)間:
- 拉人環(huán)節(jié),花了 3 天時(shí)間,拉了 1600 個(gè)有參與活動(dòng)意向的讀者到群;
- 購(gòu)買服務(wù)器環(huán)節(jié),花了 7 天時(shí)間,下單滿 1000 人;
- 核對(duì)訂單環(huán)節(jié) 返現(xiàn)環(huán)節(jié),花了 3 天時(shí)間,返現(xiàn) 1000 人;
編程指北、沉默王二、拓?fù)浒⑿?、九點(diǎn)澡堂子、herongwei、武哥漫談IT、阿Q說(shuō)代碼就這樣持續(xù)了差不多 2 周的時(shí)間,就在昨天終于把活動(dòng)搞完了。大家別小看這里的每一個(gè)環(huán)節(jié),看上去感覺很容易,但是真要體驗(yàn)一次這種千人并發(fā)的場(chǎng)景,微信未讀消息從幾十個(gè),再到幾百個(gè),最后變成「
...」這三個(gè)點(diǎn),真的挺絕望的。比較無(wú)奈的是,盡管每個(gè)環(huán)節(jié),我都在群公告寫好了指引,每天各種群通知,但是依然會(huì)有不少人沒去看公告,一直在問(wèn)重復(fù)的事情,有時(shí)候同一個(gè)問(wèn)題,回答了近百次,體驗(yàn)了一把「人工智能」。其中,返現(xiàn)是最麻煩的一個(gè)環(huán)節(jié),阿里云提供給我的是一個(gè)返現(xiàn)名單 excel 表格,如果我采取的策略是,將大家一個(gè)一個(gè) ID 復(fù)制到表格搜索,然后再一個(gè)一個(gè)回復(fù)大家結(jié)果,我相信按這種方式,返現(xiàn) 100 個(gè)時(shí)候,我人已經(jīng)就廢了。好在,隔壁的小北(公眾號(hào):編程指北)比我先進(jìn)入到了返現(xiàn)環(huán)節(jié),他自己寫了個(gè) Python 服務(wù)器程序,部署到了云服務(wù)器上,然后大家通過(guò)訪問(wèn)這個(gè)服務(wù)器地址,填入各自的 ID,就能查到自己是否符合返現(xiàn)資格,極大加快了返現(xiàn)工作的效率。查詢頁(yè)面的樣子:查詢結(jié)果的樣子:正所謂「前人栽樹,后人乘涼」,小林就是乘涼的那個(gè),小北把他的程序開源給我用了,這下我就舒服了,在這里也感謝小北對(duì)本次活動(dòng)的技術(shù)支持!拿到手后,我看了下這個(gè)程序的代碼,代碼不過(guò) 100 行,用了 Flask 框架寫了兩個(gè) Web 接口。一個(gè)是 GET 請(qǐng)求,用來(lái)返回個(gè)頁(yè)面,另外一個(gè)是 POST 請(qǐng)求,用來(lái)查詢用戶的 ID 是否符合返現(xiàn)資格。那具體怎么查呢?對(duì)于這種需要快速判斷一個(gè)數(shù)據(jù)是否存在于一個(gè)集合中的場(chǎng)景,用 hashmap 是比較好的方式,因?yàn)?hashmap 的查詢效率是 O(1)。所以,可以先將返現(xiàn)表格的數(shù)據(jù),一行一行讀到 hashmap 里,然后查詢的時(shí)候,直接用這個(gè) hashmap 來(lái)查 ID 是否存在于其中,如果存在就說(shuō)明具有返現(xiàn)資格。不過(guò)小北程序的實(shí)現(xiàn)方式是每個(gè)請(qǐng)求到來(lái),都會(huì)去讀文件,然后將一行行數(shù)據(jù)都讀到了 hashmap 里,然后再用于判斷。其實(shí)比較好的方式,是采取預(yù)讀的方式,也就是程序起來(lái)前,先將表格數(shù)據(jù)讀入到 hashmap,然后請(qǐng)求來(lái)的時(shí)候,直接用這個(gè) hashmap 就可以,就不用每次都要重新讀文件。無(wú)可厚非,對(duì)于 1000 人的表格,即使是暴力判斷也毫無(wú)問(wèn)題。寫一個(gè)程序的最重要的目的是先解決問(wèn)題,后續(xù)等量級(jí)大了后,在做進(jìn)一步的優(yōu)化。搭建完這個(gè)程序后,大家自己就能快速查到結(jié)果,這就好辦了,剩下就是大家把查詢的結(jié)果圖發(fā)給我,我確認(rèn)后,再把大家一個(gè)個(gè)拉到返現(xiàn)群,隨后滿 100 人后(微信紅包只能群發(fā) 100 個(gè)),就群發(fā) 100 個(gè) 80 元的紅包。就這樣反反復(fù)復(fù)的經(jīng)歷這個(gè)過(guò)程,花費(fèi)了三個(gè)晚上的時(shí)間,我把 1000 人拉到 10 個(gè)返現(xiàn)群,然后在每個(gè)群發(fā) 8000 元紅包給大家。由于群發(fā)次數(shù)過(guò)多,金額也過(guò)大,觸發(fā)到了微信的風(fēng)險(xiǎn)提示。我以為觸發(fā)了這個(gè)當(dāng)天就不能發(fā)紅包了,結(jié)果我等了半個(gè)小時(shí)后,又可以繼續(xù)發(fā)了。看到把這八萬(wàn)錢都返現(xiàn)出去后,終于松了一口氣,解放了!返現(xiàn)的工作雖然很累,但是發(fā)完紅包后,看到大家的齊刷刷的留言說(shuō)「小林幸苦了」,就感覺特別的欣慰。可能大家會(huì)好奇我這么幸苦得到了什么呢?雖然小林把獎(jiǎng)金都返現(xiàn)給了大家,但是阿里云還是給了一點(diǎn)幸苦費(fèi),不過(guò)最高興的是得到了 1000 位讀者的信任。這是我第一次搞這么大規(guī)模的活動(dòng),剛開始我是挺沒有信心的,雖然明面寫著是白X服務(wù)器,但是這個(gè)活動(dòng)是有一定風(fēng)險(xiǎn)的,就是如果沒滿 1000 人,我就沒辦法給大家返現(xiàn)。即使是這樣,這 1000 位讀者還是愿意參與進(jìn)來(lái)。愛了!





