Txog tam sim no peb yuav muaj cov ntawv thov yooj yim tshaj plaws tsim, me ntsis tom qab peb yuav nthuav dav nws, txawm li cas los xij, txhawm rau kom tsis txhob cia koj tos, ntawm no cov ntaub ntawv mus rau App-class. Kuv kuj pom zoo kom ua tib zoo saib cov chav kawm, vim nws yog lub luag haujlwm rau feem ntau ntawm cov chaw.
Lub ntsiab qhov tseem ceeb
Tus neeg sawv cev rau kev sau thiab khaws cov npe ntawm kev nyab xeeb
Yog li, ua ntej peb tau txais cov khoom siv faust - nws yooj yim heev. Tom ntej no, peb tshaj tawm meej meej ib lub ntsiab lus rau peb tus neeg sawv cev ... Ntawm no nws tsim nyog hais txog nws yog dab tsi, qhov ntsuas sab hauv yog dab tsi thiab qhov no tuaj yeem teeb tsa txawv li cas.
Cov ntsiab lus hauv kafka, yog tias peb xav paub cov ntsiab lus tseeb, nws zoo dua los nyeem tawm. ntaub ntawv, los yog koj nyeem tau daim ntawv cog lus nyob rau hauv Habre nyob rau hauv Lavxias teb sab, qhov twg txhua yam yog reflected zoo heev :)
Parameter sab hauv, piav qhia tau zoo heev hauv faust doc, tso cai rau peb los teeb tsa lub ntsiab lus ncaj qha rau hauv cov cai, ntawm chav kawm, qhov no txhais tau hais tias cov kev txwv tsis pub dhau los ntawm faust developers, piv txwv li: tuav, tuav txoj cai (los ntawm kev rho tawm, tab sis koj tuaj yeem teeb tsa. compact), tus naj npawb ntawm partitions ib lub ncauj lus (cov qhab niaua, piv txwv li, tsawg dua ntiaj teb qhov tseem ceeb apps faust).
Feem ntau, tus neeg sawv cev tuaj yeem tsim cov ncauj lus tswj hwm nrog cov txiaj ntsig thoob ntiaj teb, txawm li cas los xij, kuv nyiam tshaj tawm txhua yam kom meej. Tsis tas li ntawd, qee qhov kev txwv (piv txwv li, tus naj npawb ntawm kev faib lossis kev tuav pov hwm txoj cai) ntawm cov ncauj lus hauv tus neeg sawv cev tshaj tawm tsis tuaj yeem teeb tsa.
Nov yog qhov nws yuav zoo li yam tsis tau txhais lub ntsiab lus:
Cia peb saib ntawm qhov muab faib. Raws li peb tuaj yeem pom, ib lub ntsiab lus tau tsim nrog lub npe uas peb tau xaiv hauv cov lej, tus naj npawb ntawm kev faib tawm (8, coj los ntawm topic_partitions - daim ntawv thov khoom parameter), txij li peb tsis tau qhia tus nqi ntawm tus kheej rau peb cov ncauj lus (ntawm kev faib tawm). Tus neeg sawv cev tshaj tawm hauv tus neeg ua haujlwm tau muab tag nrho 8 qhov kev faib tawm, vim nws tsuas yog ib qho xwb, tab sis qhov no yuav tau tham txog ntau yam ntxiv hauv ntu txog kev sib koom ua ke.
Zoo, tam sim no peb tuaj yeem mus rau lwm lub qhov rais davhlau ya nyob twg thiab xa cov lus khoob rau peb lub ntsiab lus:
Kev zoo siab thiab kev xyiv fab - thawj tus neeg sawv cev yog npaj txhij :)
Tus neeg sawv cev npaj txhij, nyob ntev tus neeg sawv cev tshiab!
Yog lawm, cov txiv neej, peb tsuas yog hais txog 1/3 ntawm txoj kev npaj los ntawm kab lus no, tab sis tsis txhob poob siab, vim tam sim no nws yuav yooj yim dua.
Yog li tam sim no peb xav tau tus neeg sawv cev uas sau cov ntaub ntawv meta thiab muab tso rau hauv ib daim ntawv sau:
collect_security_overview_topic = app.topic("collect_security_overview", internal=True)
@app.agent(collect_security_overview_topic)
async def collect_security_overview(
stream: StreamT[?],
) -> AsyncIterable[bool]:
async with aiohttp.ClientSession() as session:
async for event in stream:
...
Txij li tus neeg sawv cev no yuav ua cov ntaub ntawv hais txog kev ruaj ntseg tshwj xeeb, peb yuav tsum tau qhia tus ticker (cim) ntawm qhov kev ruaj ntseg no hauv cov lus. Rau lub hom phiaj no hauv faust muaj Cov ntaub ntawv - Cov chav kawm uas tshaj tawm cov lus qhia hauv lub ncauj lus tus neeg sawv cev.
Hauv qhov no, cia peb mus records.pythiab piav qhia seb cov lus rau lub ncauj lus no yuav tsum zoo li cas:
import faust
class CollectSecurityOverview(faust.Record):
symbol: str
exchange: str
Raws li koj tuaj yeem tau twv, faust siv cov python hom lus piav qhia los piav qhia cov lus qhia, uas yog vim li cas qhov tsawg kawg nkaus txhawb los ntawm lub tsev qiv ntawv yog 3.6.
Cia peb rov qab mus rau tus neeg sawv cev, teeb tsa hom thiab ntxiv nws:
Qhov kawg uas kuv tau cog lus tias yuav sau rau hauv ntu no yog cov lus txib. Raws li tau hais ua ntej, cov lus txib hauv faust yog wrapper ncig nias. Qhov tseeb, faust tsuas txuas peb cov kev cai hais kom ua rau nws lub interface thaum qhia qhov tseem ceeb -A
Tom qab tshaj tawm cov neeg sawv cev hauv agents.py ntxiv ib tug muaj nuj nqi nrog ib tug decorator app.commandhu rau txoj kev cam khwb cia у sau_securitites:
@app.command()
async def start_collect_securities():
"""Collect securities and overview."""
await collect_securities.cast()
> faust -A horton.agents --help
....
Commands:
agents List agents.
clean-versions Delete old version directories.
completion Output shell completion to be evaluated by the...
livecheck Manage LiveCheck instances.
model Show model detail.
models List all available models as a tabulated list.
reset Delete local table state.
send Send message to agent/topic.
start-collect-securities Collect securities and overview.
tables List available tables.
worker Start worker instance for given app.
Peb tuaj yeem siv nws zoo li lwm tus, yog li cia peb rov pib tus neeg ua haujlwm faust thiab pib sau tag nrho cov kev nyab xeeb:
> faust -A horton.agents start-collect-securities
Dab tsi yuav tshwm sim tom ntej?
Nyob rau hauv ib feem tom ntej no, siv cov neeg ua hauj lwm seem ua piv txwv, peb yuav txiav txim siab lub dab dej mechanism rau kev tshawb nrhiav rau extrems nyob rau hauv lub kaw nqi ntawm trading rau lub xyoo thiab lub cron tso tawm cov neeg sawv cev.