Vela β ntse cache rau lub sijhawm series thiab ntau dua
Hauv fintech, peb feem ntau yuav tsum ua cov ntaub ntawv loj heev ntawm cov ntaub ntawv pauv pauv nyiaj. Peb tau txais cov ntaub ntawv los ntawm ntau qhov chaw, thiab lawv txhua tus muaj nws tus kheej lub tswv yim ntawm yuav ua li cas ntxiv cov nqi pauv rau tag kis, hnub tom qab tag kis, lub hli tom ntej thiab txawm tias peb xyoos tom ntej. Yog tias tsuas yog ib tus neeg tuaj yeem kwv yees tus nqi txoj cai, nws yuav yog lub sijhawm kaw lub lag luam thiab tsuas yog ruam hloov nyiaj rov qab thiab tawm mus. Qee qhov chaw muaj kev ntseeg siab dua, qee qhov muab cov khib nyiab tag nrho, nrog qhov tsis tshua muaj kev suav nrog yuav luag qhov tseeb, tab sis rau cov khub niam txiv kab txawv. Peb txoj hauj lwm yog sift los ntawm cov kaum tawm txhiab tus nqi ntawm ib ob thiab txiav txim siab seb yuav ua li cas qhia rau cov neeg siv khoom. Peb yuav tsum tau lim tawm ib qho txiaj ntsig zoo los ntawm tons ntawm av thiab av, ib yam li flamingos ua noj su.
Ib qho tshwj xeeb tshwj xeeb ntawm flamingos yog lawv cov beak loj heev downwardly nkhaus, uas lawv lim zaub mov los ntawm dej los yog av nkos.
- Wiki
Yog li ntawd lub tsev qiv ntawv tau yug los Vela, uas khaws ib lub xeev cache rau ntau yam txiaj ntsig ntawm lub sijhawm teev tseg. Nyob rau hauv lub hood, nws lim tawm cov ntaub ntawv phem thiab outdated ntawm ya, thiab kuj muab kev nkag mus rau qhov tseeb N validated qhov tseem ceeb rau txhua tus yuam sij (txiaj khub, hauv peb rooj plaub).
Wb hais tias peb sau cov nqi rau peb lub txiaj khub. Yooj yim txhais Vela khaws lub xeev tam sim no nws yuav zoo li no:
defmodule Pairs do
use Vela,
eurusd: [sorter: &Kernel.<=/2],
eurgbp: [limit: 3, errors: 1],
eurcad: [validator: Pairs]
@behaviour Vela.Validator
@impl Vela.Validator
def valid?(:eurcad, rate), do: rate > 0
end
Hloov kho cov nqi
Vela.put/3 Cov haujlwm yuav ua raws li hauv qab no:
yuav ua rau validator ntawm tus nqi, yog tias ib qho tau txhais (saib tshooj Kev lees paub hauv qab no);
yuav ntxiv tus nqi rau kab ntawm cov txiaj ntsig zoo yog tias qhov kev lees paub tau ua tiav, lossis rau kab kev pabcuam :__errors__ txwv tsis pub;
yuav ua rau sorting yog sorter txhais rau tus yuam sij muab, los yog yuav tsuas muab tus nqi ntawm lub taub hau ntawm daim ntawv (LUB NEEJ, saib tshooj Kev cais tawm hauv qab no);
yuav luas kab raws li qhov parameter :limit dhau los ntawm kev tsim;
Yog tias validation ua tiav, tus nqi ntxiv rau cov npe hauv qab tus yuam sij sib raug; txwv tsis pub, tuple {serie, value} mus rau :__errors_.
Sib piv
Cov nqi khaws cia hauv cov kab no tuaj yeem yog dab tsi. Qhia Vela piv rau lawv, nws yog ib qho tsim nyog yuav tau hloov compare_by parameter nyob rau hauv series txhais (tshwj tsis yog qhov tseem ceeb tsis tuaj yeem muab piv nrog tus qauv Kernel.</2); qhov parameter no yuav tsum yog hom (Vela.value() -> number()). Los ntawm lub neej ntawd nws yooj yim & &1.
Tsis tas li, koj tuaj yeem dhau qhov parameter rau kab txhais comparator xam cov nqi delta (min/max); piv txwv li, los ntawm kev xa tawm Date.diff/2 Raws li kev sib piv, koj tuaj yeem tau txais qhov tseeb deltas rau hnub.
Lwm txoj hauv kev yooj yim rau kev ua haujlwm yog kom dhau qhov ntsuas threshold, uas txhais qhov siab tshaj plaws pub piv ntawm tus nqi tshiab rau {min, max} lub sijhawm. Txij li nws tau teev tseg raws li feem pua, daim tshev tsis siv comparatortab sis tseem siv compare_by. Piv txwv li, txhawm rau txheeb xyuas tus nqi pib rau hnub tim, koj yuav tsum qhia meej compare_by: &DateTime.to_unix/1 (kom tau txais tus lej suav) thiab threshold: 1, ua rau muaj nuj nqis tshiab tsuas yog tso cai yog tias lawv nyob hauv Β±band ncua sij hawm los ntawm cov nqi tam sim no.
Thaum kawg, koj tuaj yeem siv Vela.equal?/2 piv ob lub caches. Yog tias tus nqi txhais tau tias muaj nuj nqi equal?/2 los yog compare/2, ces cov haujlwm no yuav raug siv rau kev sib piv, txwv tsis pub peb siv stupidly ==/2.
Tau txais txiaj ntsig
Kev ua lub xeev tam sim no feem ntau pib nrog kev hu Vela.purge/1, uas tshem tawm cov txiaj ntsig uas tsis siv lawm (yog validator khi rau timestamps). Ces koj hu tau Vela.slice/1uas yuav rov qab los keyword nrog cov npe kab ua tus yuam sij thiab thawj, qhov tseem ceeb.
Vela tuaj yeem ua tau zoo heev raws li lub sij hawm series cache nyob rau hauv lub xeev txheej txheem xws li GenServer/Agent. Peb xav kom tsis txhob siv qhov tseem ceeb ntawm chav kawm, thiab ua qhov no peb tsuas yog khaws cov txheej txheem nrog lub xeev ua tiav Vela, nrog tus validator qhia hauv qab no.