ProHoster > Blog > Rianachd > Vela → tasgadan snasail airson sreath ùine agus barrachd
Vela → tasgadan snasail airson sreath ùine agus barrachd
Ann am fintech, gu tric feumaidh sinn tòrr mòr de dhàta reata iomlaid airgead a phròiseasadh. Bidh sinn a’ faighinn dàta bho dhiofar thùsan, agus tha a bheachd fhèin aig gach fear dhiubh air mar as urrainn dhut ìrean iomlaid a chuir a-mach airson a-màireach, an latha às deidh a-màireach, an ath mhìos agus eadhon an ath thrì bliadhna. Mura b’ urrainn ach cuideigin ìrean ro-innse ceart, bhiodh an t-àm ann an gnìomhachas a dhùnadh agus dìreach airgead atharrachadh gu gòrach air ais is air adhart. Tha cuid de stòran nas earbsaiche, bidh cuid a 'solarachadh sgudal iomlan, le in-ghabhail tearc de luachan cha mhòr ceart, ach airson càraidean coimheach. Is e an obair againn a bhith a’ gluasad tro na deichean mhìltean de luachan gach diog agus faighinn a-mach dè dìreach a sheallas do luchd-ceannach. Feumaidh sinn an aon luach ceart a shìoladh a-mach à tonna de shalachar is silt, dìreach mar a bhios lasraichean a’ dèanamh aig lòn.
Is e feart sònraichte sònraichte de flamingos am gob mòr lùbte sìos aca, leis am bi iad a’ sìoladh biadh bho uisge no poll.
- Wiki
Mar sin rugadh an leabharlann Vela, a bhios a’ stòradh tasgadan stàite airson ioma luachan aig amannan sònraichte. Fon chochall, bidh e a’ sìoladh a-mach dàta dona agus seann-fhasanta air an itealan, agus cuideachd a’ toirt cothrom air an fheadhainn as ùire N luachan dearbhte airson gach iuchair (paidhrichean airgid, nar cùise).
Canaidh sinn gu bheil sinn a’ cruinneachadh ìrean airson trì paidhrichean airgid. Am mìneachadh as sìmplidh Vela gus an staid làithreach a stòradh seallaidh e rudeigin mar seo:
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
bheir validator air an luach, ma tha aon air a mhìneachadh (faic caibideil Dearbhadh gu h-ìosal);
cuiridh e an luach an dàrna cuid ris an t-sreath de luachan math ma bha an dearbhadh soirbheachail, no ris an t-sreath seirbheis :__errors__ air dhòigh eile;
bheir e seòrsachadh ma tha sorter air a mhìneachadh airson iuchair shònraichte, no dìreach cuiridh e an luach aig ceann na liosta (LIFO, faic caibideil Deasachadh gu h-ìosal);
gearraidh e an t-sreath a rèir a’ pharameter :limit seachad air a' chruthachadh ;
Ma tha an dearbhadh soirbheachail, thèid an luach a chur ris an liosta fon iuchair fhreagarrach; air neo, an tuple {serie, value} a' dol gu :__errors_.
Coimeas
Faodaidh na luachan a tha air an stòradh anns na sreathan sin a bhith mar rud sam bith. A theagasg Vela gus coimeas a dhèanamh riutha, feumar gluasad compare_by paramadair ann am mìneachadh an t-sreath (mura h-urrainnear na luachan a choimeas ris an ìre àbhaisteach Kernel.</2); feumaidh am paramadair seo a bhith de sheòrsa (Vela.value() -> number()). Gu gnàthach tha e sìmplidh & &1.
Cuideachd, faodaidh tu paramadair a thoirt don mhìneachadh loidhne comparator gus luachan delta obrachadh a-mach (min/max); mar eisimpleir, le bhith a’ tar-chur Date.diff/2 mar choimeas, gheibh thu na deltas ceart airson cinn-latha.
Is e dòigh goireasach eile air obair a dhol seachad air paramadair threshold, a tha a’ mìneachadh a’ cho-mheas ceadaichte as àirde den luach ùr gu {min, max} eadar-ama. Leis gu bheil e air a shònrachadh mar àireamh sa cheud, chan eil an t-seic a 'cleachdadh comparatorach ga chleachdadh fhathast compare_by. Mar eisimpleir, gus luach stairsneach a shònrachadh airson amannan cinn-latha, feumaidh tu a shònrachadh compare_by: &DateTime.to_unix/1 (gus luach iomlan fhaighinn) agus threshold: 1, ag adhbhrachadh gun tèid luachan ùra a cheadachadh a-mhàin ma tha iad a-staigh ±band eadar-ama bho na luachan làithreach.
Mu dheireadh, faodaidh tu a chleachdadh Vela.equal?/2 gus coimeas a dhèanamh eadar dà tasgadan. Ma tha na luachan a 'mìneachadh gnìomh equal?/2 no compare/2, an uairsin thèid na gnìomhan sin a chleachdadh airson coimeas, air neo bidh sinn a’ cleachdadh gu gòrach ==/2.
A 'faighinn luachan
Mar as trice bidh làimhseachadh na stàite gnàthach a’ tòiseachadh le gairm Vela.purge/1, a bheir air falbh luachan seann-fhasanta (ma tha validator ceangailte ri timestamps). Faodaidh tu an uairsin fònadh Vela.slice/1a thilleas keyword le ainmean sreath mar iuchraichean agus a’ chiad, fìor luachan.
Faodaidh tu cuideachd a chleachdadh get_in/2/pop_in/2 airson ruigsinneachd aig ìre ìosal air na luachan anns gach sreath.
Iarrtas
Vela faodaidh e a bhith air leth feumail mar thasglann sreath ùine ann an staid pròiseas mar GenServer/Agent. Tha sinn airson gun a bhith a’ cleachdadh seann luachan cùrsa gu bràth, agus airson seo a dhèanamh bidh sinn dìreach a’ cumail a’ phròiseas leis an stàit air a ghiullachd Vela, leis an neach-dearbhaidh gu h-ìosal.
и Vela.purge/1 gu sàmhach a’ toirt air falbh a h-uile luach sean a h-uile uair a dh’ fheumas sinn an dàta. Gus faighinn gu na fìor luachan a chanas sinn gu sìmplidh Vela.slice/1, agus nuair a tha feum air eachdraidh bheag den chùrsa (an t-sreath gu lèir), bidh sinn dìreach ga thilleadh - air a rèiteachadh mu thràth - le luachan dearbhte.