篇首語(yǔ):一家之言,姑且聽之~
事情是這樣的,原本以為設(shè)計(jì)了EQIM觸發(fā)和手動(dòng)拷貝小G的地震消息進(jìn)行觸發(fā)這兩種方式已經(jīng)可以無憂無慮了,事實(shí)證明我還是天真了。
突如其來的一次4.9級(jí)地震,由于沒有達(dá)到預(yù)設(shè)的EQIM自動(dòng)觸發(fā)的震級(jí)閾值(國(guó)內(nèi)5級(jí)),所以EQIM并沒有自動(dòng)觸發(fā)流程運(yùn)行,但是誰(shuí)知道通知要會(huì)商,果然隨性得很,于是乎決定采取第2種方式:手動(dòng)拷貝小G的地震消息進(jìn)行觸發(fā)。
悲劇發(fā)生了,往?;顫姷男居然沒有推送報(bào)告,自然就無法直接拷貝它的地震消息進(jìn)行觸發(fā)了,之前因?yàn)楦杏X小G的地震信息相對(duì)完整,年月日時(shí)分秒都有,于是流程設(shè)計(jì)之初就以它的格式進(jìn)行解析。這下給了我當(dāng)頭一棒。
于是,我只能退而求其次,基于12322收到的地震短信進(jìn)行修改,改成類似小G地震信息的格式,然后拷貝到微信端觸發(fā)流程,時(shí)間仿佛非常漫長(zhǎng),顫抖的小手在那狹小的手機(jī)屏幕上屢屢出錯(cuò)。
痛定思痛,天一亮我就開始了第N次的流程升級(jí)。想法很簡(jiǎn)單,實(shí)現(xiàn)12322和小G兩種格式地震消息自動(dòng)識(shí)別的功能,即在拷貝地震消息的時(shí)候不需要任何多余聲明,直接按原來的方式拷貝,讓流程自動(dòng)去識(shí)別。
實(shí)現(xiàn)起來也很簡(jiǎn)單,12322與小G地震消息最大的不同在于信息里包含了“東經(jīng)”或“西經(jīng)”以及“北緯”或“南緯”這幾個(gè)詞,因此直接通過hassubstringor這個(gè)函數(shù)就可以判斷傳遞的地震消息是12322格式還是小G格式,將判斷結(jié)果更新流程變量,比如將流程變量命名為“消息類型”。之后就簡(jiǎn)單了,利用條件運(yùn)行器節(jié)點(diǎn),可以接入不同的處理分支,通過消息類型的判斷結(jié)果來決定執(zhí)行哪一條處理分支,解析基本的地震參數(shù)信息。
當(dāng)然,如果你想引入更多格式的地震消息,思路是一樣的,找到不同格式地震消息的關(guān)鍵不同,按照上述邏輯實(shí)現(xiàn)即可。
這里沒有采用在地震消息里直接增加關(guān)鍵詞的方式來實(shí)現(xiàn),主要是,懶,不想多加字。
對(duì)于地震消息里增加關(guān)鍵詞,其實(shí)可以有很多用處。比如我是通過增加關(guān)鍵詞'[測(cè)試]',讓流程自由地在正式推送和測(cè)試運(yùn)行兩種狀態(tài)切換,將成果產(chǎn)出推送給不同的目標(biāo)人群(通過判斷關(guān)鍵詞,設(shè)置不同的微信接收用戶)。當(dāng)然,你還可以更細(xì)分,弄很多關(guān)鍵詞,這樣后期就不用反復(fù)修改流程,只需要在傳遞的消息里加不同關(guān)鍵詞就可以實(shí)現(xiàn)不同功能的切換。