เดซเต—เดธเตเดฑเตเดฑเดฟเดฒเต† เดชเดถเตเดšเดพเดคเตเดคเดฒ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ, เดญเดพเด—เด‚ I: เด’เดฐเต เด†เดฎเตเด–เด‚

เดซเต—เดธเตเดฑเตเดฑเดฟเดฒเต† เดชเดถเตเดšเดพเดคเตเดคเดฒ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ, เดญเดพเด—เด‚ I: เด’เดฐเต เด†เดฎเตเด–เด‚

เดžเดพเตป เดŽเด™เตเด™เดจเต† เด‡เด™เตเด™เดจเต† เดœเต€เดตเดฟเด•เตเด•เดพเตป เดตเดจเตเดจเต?

เดตเดณเดฐเต†เด•เตเด•เดพเดฒเด‚ เดฎเตเดฎเตเดชเต เดŽเดจเดฟเด•เตเด•เต เดตเดณเดฐเต† เดฒเต‹เดกเตเดšเต†เดฏเตเดค เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เดฌเดพเด•เตเด•เต†เตปเดกเดฟเตฝ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟเดตเดจเตเดจเต, เด…เดคเดฟเตฝ เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เด•เดฃเด•เตเด•เตเด•เต‚เดŸเตเดŸเดฒเตเด•เดณเตเด‚ เดฎเต‚เดจเตเดจเดพเด‚ เด•เด•เตเดทเดฟ เดธเต‡เดตเดจเด™เตเด™เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดงเดพเดฐเดพเดณเด‚ เดชเดถเตเดšเดพเดคเตเดคเดฒ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเตเดŸเต† เดชเดคเดฟเดตเต เดจเดฟเตผเดตเตเดตเดนเดฃเด‚ เดธเด‚เด˜เดŸเดฟเดชเตเดชเดฟเด•เตเด•เต‡เดฃเตเดŸเดคเต เด†เดตเดถเตเดฏเดฎเดพเดฃเต. เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด…เดธเดฎเดจเตเดตเดฟเดคเดฎเดพเดฃเต, เดžเดพเตป เดตเดฐเตเดจเตเดจเดคเดฟเดจเต เดฎเตเดฎเตเดชเต, เด•เตเดฐเต‹เตบ-เดฒเต‹เดžเตเดšเดฟเด‚เด—เต เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพเด•เตเด•เดพเดฏเดฟ เด‡เดคเดฟเดจเต เด’เดฐเต เดฒเดณเดฟเดคเดฎเดพเดฏ เดธเด‚เดตเดฟเดงเดพเดจเด‚ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต: เดจเดฟเดฒเดตเดฟเดฒเต† เดธเดฎเดฏเด‚ เดชเดฐเดฟเดถเต‹เดงเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดฒเต‚เดชเตเดชเต, เด’เดคเตเดคเตเดšเต‡เดฐเดฒเดฟเดฒเต‚เดŸเต† เด•เตŠเดฑเต—เดŸเตเดŸเดฟเดจเตเด•เดณเตเดŸเต† เด—เตเดฐเต‚เดชเตเดชเตเด•เตพ เดธเดฎเดพเดฐเด‚เดญเดฟเด•เตเด•เตเด• - เดกเดธเตป เด•เดฃเด•เตเด•เดฟเดจเต เด…เดคเตเดคเดฐเด‚ เด•เตŠเดฑเต‚เดŸเตเดŸเต€เดจเตเด•เตพ เด‰เดฃเตเดŸเดพเด•เตเดจเตเดจเดคเตเดตเดฐเต† เดˆ เดธเดฎเต€เดชเดจเด‚ เดธเตเดตเต€เด•เดพเดฐเตเดฏเดฎเดพเดฏเดฟ เดฎเดพเดฑเดฟ. , เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด…เดตเดฐเตเดŸเต† เดŽเดฃเตเดฃเด‚ เดฐเดฃเตเดŸเดพเดฏเดฟเดฐเด‚ เด•เดตเดฟเดžเตเดžเดชเตเดชเต‹เตพ, เด’เดฐเต เดฌเตเดฐเต‹เด•เตเด•เตผ, เดจเดฟเดฐเดตเดงเดฟ เดคเตŠเดดเดฟเดฒเดพเดณเดฟเด•เตพ เดฎเตเดคเดฒเดพเดฏเดตเดฏเตเดฎเดพเดฏเดฟ เด’เดฐเต เดธเดพเดงเดพเดฐเดฃ เดŸเดพเดธเตเด•เต เด•เตเดฏเต‚ เดธเด‚เด˜เดŸเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เดŽเดจเดฟเด•เตเด•เต เดšเดฟเดจเตเดคเดฟเด•เตเด•เต‡เดฃเตเดŸเดฟ เดตเดจเตเดจเต.

เด†เดฆเตเดฏเด‚ เดžเดพเตป เดฎเตเดฎเตเดชเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเดฟเดฐเตเดจเตเดจ เดธเต†เดฒเดฑเดฟ เดชเดฐเต€เด•เตเดทเดฟเด•เตเด•เดพเตป เดคเต€เดฐเตเดฎเดพเดจเดฟเดšเตเดšเต. เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เด…เดธเดฎเดจเตเดตเดฟเดค เดธเตเดตเดญเดพเดตเด‚ เด•เดพเดฐเดฃเด‚, เดžเดพเตป เดšเต‹เดฆเตเดฏเดคเตเดคเดฟเตฝ เดฎเตเดดเตเด•เดฟ เด•เดฃเตเดŸเต เด’เดฐเต เดฒเต‡เด–เดจเด‚, เด’เดชเตเดชเด‚ เดกเตเดฐเดพเดซเตเดฑเตเดฑเต, เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เดฐเดšเดฏเดฟเดคเดพเดตเต เดธเตƒเดทเตเดŸเดฟเดšเตเดšเดคเต.

เดžเดพเตป เด‡เดคเต เดชเดฑเดฏเตเด‚, เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เดตเดณเดฐเต† เดฐเดธเด•เดฐเดตเตเด‚ เดžเด™เตเด™เดณเตเดŸเต† เดŸเต€เดฎเดฟเดจเตเดฑเต† เดฎเดฑเตเดฑเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเด•เดณเดฟเตฝ เดตเดณเดฐเต† เดตเดฟเดœเดฏเด•เดฐเดฎเดพเดฏเดฟ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเดคเตเดฎเดพเดฃเต, เด•เต‚เดŸเดพเดคเต† เด’เดฐเต เด…เดธเดฟเตปเด•เตเดฐเดฃเดธเต เดชเต‚เตพ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เด‡เดคเต เด‰เตฝเดชเตเดชเดพเดฆเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เดคเดจเดฟเด•เตเด•เต เด•เดดเดฟเดžเตเดžเตเดตเต†เดจเตเดจเต เดฐเดšเดฏเดฟเดคเดพเดตเต เดคเดจเตเดจเต† เดชเดฑเดฏเตเดจเตเดจเต. เดชเด•เตเดทเต‡, เดจเดฟเตผเดญเดพเด—เตเดฏเดตเดถเดพเตฝ, เด…เดคเต เดŽเดจเดฟเด•เตเด•เต เดถเดฐเดฟเด•เตเด•เตเด‚ เดฏเต‹เดœเดฟเดšเตเดšเดฟเดฒเตเดฒ, เด…เดคเต เดฎเดพเดฑเดฟเดฏเดคเตเดชเต‹เดฒเต† เด’เดฐเต เดชเตเดฐเดถเตเดจเด‚ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เดณเตเดŸเต† เด—เตเดฐเต‚เดชเตเดชเต เดฒเต‹เดžเตเดšเดฟเดจเตŠเดชเตเดชเด‚ (เด•เดพเดฃเตเด•. เด—เตเดฐเต‚เดชเตเดชเต). เดŽเดดเตเดคเตเดจเตเดจ เดธเดฎเดฏเดคเตเดคเต เด‡เดทเตเดฏเต‚ เด‡เดคเดฟเดจเด•เด‚ เด…เดŸเดšเตเดšเดฟเดŸเตเดŸเดฟเดฐเดฟเด•เตเด•เตเดจเตเดจเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เด’เดฐเต เดฎเดพเดธเดฎเดพเดฏเดฟ เดœเต‹เดฒเดฟ เดจเดŸเด•เตเด•เตเดจเตเดจเต. เดŽเดจเตเดคเดพเดฏเดพเดฒเตเด‚, เดฐเดšเดฏเดฟเดคเดพเดตเดฟเดจเต เดŽเดฒเตเดฒเดพ เด†เดถเด‚เดธเด•เดณเตเด‚ เดจเต‡เดฐเตเดจเตเดจเต, เด•เดพเดฐเดฃเด‚ เดฒเดฟเดฌเดฟเตฝ เด‡เดคเดฟเดจเด•เด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจ เด•เดพเดฐเตเดฏเด™เตเด™เตพ เด‰เดฃเตเดŸเต ... เดชเตŠเดคเตเดตเต‡, เดชเต‹เดฏเดฟเดจเตเดฑเต เดŽเดจเตเดจเดฟเดฒเดพเดฃเต, เด‰เดชเด•เดฐเดฃเด‚ เดŽเดจเดฟเด•เตเด•เต เดจเดจเดตเตเดณเตเดณเดคเดพเดฏเดฟ เดฎเดพเดฑเดฟ. เด•เต‚เดŸเดพเดคเต†, เดšเดฟเดฒ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพเด•เตเด•เต เดตเตเดฏเดคเตเดฏเดธเตโ€Œเดค เดธเต‡เดตเดจเด™เตเด™เดณเดฟเดฒเต‡เด•เตเด•เต 2-3 http เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพ เด‰เดฃเตเดŸเดพเดฏเดฟเดฐเตเดจเตเดจเต, เด…เดคเดฟเดจเดพเตฝ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ เด’เดชเตเดฑเตเดฑเดฟเดฎเตˆเดธเต เดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ เดชเต‹เดฒเตเด‚ เดžเด™เตเด™เตพ 4 เด†เดฏเดฟเดฐเด‚ TCP เด•เดฃเด•เตเดทเดจเตเด•เตพ เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เตเดจเตเดจเต, เดเด•เดฆเต‡เดถเด‚ เด“เดฐเต‹ 2 เดฎเดฃเดฟเด•เตเด•เต‚เดฑเดฟเดฒเตเด‚ - เดตเดณเดฐเต† เดจเดฒเตเดฒเดคเดฒเตเดฒ... เด’เดฐเต เดคเดฐเด‚ เดธเต†เดทเตป เดธเตƒเดทเตโ€ŒเดŸเดฟเด•เตเด•เดพเตป เดžเดพเตป เด†เด—เตเดฐเดนเดฟเด•เตเด•เตเดจเตเดจเต เดคเตŠเดดเดฟเดฒเดพเดณเดฟเด•เดณเต† เด†เดฐเด‚เดญเดฟเด•เตเด•เตเดฎเตเดชเต‹เตพ เดšเตเดฎเดคเดฒ. aiohttp เดตเดดเดฟเดฏเตเดณเตเดณ เดงเดพเดฐเดพเดณเด‚ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเต เด•เตเดฑเดšเตเดšเตเด•เต‚เดŸเดฟ เด‡เดตเดฟเดŸเต†.

เด‡เด•เตเด•เดพเดฐเตเดฏเดคเตเดคเดฟเตฝ, เดžเดพเตป เดจเต‹เด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เดฟ เด‡เดคเดฐเดฎเดพเตผเด—เด™เตเด™เตพ เด…เดคเต เด•เดฃเตเดŸเต†เดคเตเดคเดฟ! เดธเต†เดฒเดฑเดฟเดฏเตเดŸเต† เดธเตเดฐเดทเตเดŸเดพเด•เตเด•เตพ, เดชเตเดฐเดคเตเดฏเต‡เด•เดฟเดšเตเดšเต, เดžเดพเตป เดฎเดจเดธเตเดธเดฟเดฒเดพเด•เตเด•เตเดจเตเดจเดคเตเดชเต‹เดฒเต† เดธเต‹เดณเดฎเดฟเดจเต‹เดŸเต เดšเต‹เดฆเดฟเด•เตเด•เต‚, เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดชเตเดชเต†เดŸเตเดŸเต เดตเต‡เดตเดฒเดพเดคเดฟ, เดฏเดฅเดพเตผเดคเตเดฅเดคเตเดคเดฟเตฝ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ เดฑเต‡เดพเดฌเดฟเตป เดนเตเดกเต. เด•เดพเดซเตเด• เดธเตเดŸเตเดฐเต€เดฎเตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดชเตเดฐเดšเต‹เดฆเดจเด‚ เด‰เตพเด•เตเด•เตŠเดฃเตเดŸเต เด’เดฐเต เดฌเตเดฐเต‹เด•เตเด•เดฑเดพเดฏเดฟ เด•เดพเดซเตเด•เดฏเตโ€Œเด•เตเด•เตŠเดชเตเดชเด‚ เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดเดœเดจเตเดฑเตเดฎเดพเดฐเตเดŸเต† เดชเตเดฐเดตเตผเดคเตเดคเดจเดคเตเดคเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดซเดฒเด™เตเด™เตพ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเตเด‚ Rocksdb เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเต, เดเดฑเตเดฑเดตเตเด‚ เดชเตเดฐเดงเดพเดจเดชเตเดชเต†เดŸเตเดŸ เด•เดพเดฐเตเดฏเด‚ เดฒเตˆเดฌเตเดฐเดฑเดฟ เด…เดธเดฎเดจเตเดตเดฟเดคเดฎเดพเดฃเต เดŽเดจเตเดจเดคเดพเดฃเต.

เด•เต‚เดŸเดพเดคเต†, เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดจเต‹เด•เตเด•เดพเด‚ เดชเต†เดŸเตเดŸเต†เดจเตเดจเตเดณเตเดณ เดคเดพเดฐเดคเดฎเตเดฏเด‚ เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเดฟเดจเตเดฑเต† เดธเตเดฐเดทเตโ€ŒเดŸเดพเด•เตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเตเดณเตเดณ เดธเต†เดฒเดฑเดฟเดฏเตเด‚ เดซเต—เดธเตเดฑเตเดฑเตเด‚: เด…เดตเดฏเตเดŸเต† เดตเตเดฏเดคเตเดฏเดพเดธเด™เตเด™เตพ, เดฌเตเดฐเต‹เด•เตเด•เตผเดฎเดพเตผ เดคเดฎเตเดฎเดฟเดฒเตเดณเตเดณ เดตเตเดฏเดคเตเดฏเดพเดธเด™เตเด™เตพ, เด’เดฐเต เดชเตเดฐเดพเดฅเดฎเดฟเด• เดšเตเดฎเดคเดฒ เดจเดŸเดชเตเดชเดฟเดฒเดพเด•เตเด•เตฝ. เดŽเดฒเตเดฒเดพเด‚ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดซเต—เดธเตเดฑเตเดฑเดฟเดฒเต† เด’เดฐเต เดจเดฒเตเดฒ เดธเดตเดฟเดถเต‡เดทเดค เดถเตเดฐเดฆเตเดง เด†เด•เตผเดทเดฟเด•เตเด•เตเดจเตเดจเต - เดตเดฟเดทเดฏเดคเตเดคเดฟเดฒเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเตเดจเตเดจเดคเดฟเดจเดพเดฏเดฟ เดŸเตˆเดชเตเดชเต เดšเต†เดฏเตเดค เดกเดพเดฑเตเดฑ.

เดŽเดจเตเดคเต เดšเต†เดฏเตเดฏเดฃเด‚?

เด…เดคเดฟเดจเดพเตฝ, เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดฒเต‡เด–เดจ เดชเดฐเดฎเตเดชเดฐเดฏเดฟเตฝ, Faust เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดชเดถเตเดšเดพเดคเตเดคเดฒ เดŸเดพเดธเตเด•เตเด•เตเด•เดณเดฟเตฝ เดจเดฟเดจเตเดจเต เดกเดพเดฑเตเดฑ เดŽเด™เตเด™เดจเต† เดถเต‡เด–เดฐเดฟเด•เตเด•เดพเดฎเต†เดจเตเดจเต เดžเดพเตป เด•เดพเดฃเดฟเดšเตเดšเตเดคเดฐเดพเด‚. เดžเด™เตเด™เดณเตเดŸเต† เด‰เดฆเดพเดนเดฐเดฃ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เด‰เดฑเดตเดฟเดŸเด‚, เดชเต‡เดฐเต เดธเต‚เดšเดฟเดชเตเดชเดฟเด•เตเด•เตเดจเตเดจเดคเต เดชเต‹เดฒเต†, alphavantage.co. เดเดœเดจเตเดฑเตเดธเต (เดธเดฟเด™เตเด•เต, เดŸเต‹เดชเตเดชเดฟเด•เตเด•เตเด•เตพ, เดชเดพเตผเดŸเตเดŸเต€เดทเดจเตเด•เตพ) เดŽเด™เตเด™เดจเต† เดŽเดดเตเดคเดพเด‚, เดŽเด™เตเด™เดจเต† เดฑเต†เด—เตเดฒเตผ (เด•เตเดฐเต‹เตบ) เดŽเด•เตเดธเดฟเด•เตเดฏเต‚เดทเตป เดจเดŸเดคเตเดคเดพเด‚, เดเดฑเตเดฑเดตเตเด‚ เดธเต—เด•เดฐเตเดฏเดชเตเดฐเดฆเดฎเดพเดฏ เดซเดพเดธเตเดฑเตเดฑเต เด•เตเดฒเดฟ เด•เดฎเดพเตปเดกเตเด•เตพ (เด•เตเดฒเดฟเด•เตเด•เดฟเดฒเต‚เดŸเต† เด’เดฐเต เดฑเดพเดชเตเดชเตผ), เดฒเดณเดฟเดคเดฎเดพเดฏ เด•เตเดฒเดธเตเดฑเตเดฑเดฑเดฟเด‚เด—เต เดŽเดจเตเดจเดฟเดต เดžเดพเตป เด•เดพเดฃเดฟเด•เตเด•เตเด‚, เด…เดตเดธเดพเดจเด‚ เดžเด™เตเด™เตพ เด’เดฐเต เดกเดพเดฑเตเดฑเดพเดกเต‹เด—เต เด…เดฑเตเดฑเดพเดšเตเดšเตเดšเต†เดฏเตเดฏเตเด‚ ( เดฌเต‹เด•เตโ€Œเดธเดฟเดจเต เดชเตเดฑเดคเตเดคเต เดชเตเดฐเดตเตผเดคเตเดคเดฟเด•เตเด•เตเด•) เด’เดชเตเดชเด‚ เด•เดพเดฃเดพเตป เดŽเดจเตเดคเต†เด™เตเด•เดฟเดฒเตเด‚ เดถเตเดฐเดฎเดฟเด•เตเด•เตเด•. เดถเต‡เด–เดฐเดฟเดšเตเดš เดกเดพเดฑเตเดฑ เดธเด‚เดญเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต เดžเด™เตเด™เตพ เด•เดฃเด•เตเดทเดจเดพเดฏเดฟ mongodb, เดฎเต‹เดŸเตเดŸเต‹เตผ เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเด‚.

เดฎเต‹เดฃเดฟเดฑเตเดฑเดฑเดฟเด‚เด—เดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดชเต‹เดฏเดฟเดจเตเดฑเต เดŽเดดเตเดคเดฟเดฏ เด†เดคเตเดฎเดตเดฟเดถเตเดตเดพเดธเด‚ เดตเดฟเดฒเดฏเดฟเดฐเตเดคเตเดคเตเดฎเตเดชเต‹เตพ, เด…เดตเดธเดพเดจ เดฒเต‡เด–เดจเดคเตเดคเดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจเดคเตเดคเดฟเดฒเต† เดตเดพเดฏเดจเด•เตเด•เดพเดฐเตป เด‡เดชเตเดชเต‹เดดเตเด‚ เด‡เดคเตเดชเต‹เดฒเต† เด•เดพเดฃเดชเตเดชเต†เดŸเตเดฎเต†เดจเตเดจเต เดžเดพเตป เด•เดฐเตเดคเตเดจเตเดจเต:

เดซเต—เดธเตเดฑเตเดฑเดฟเดฒเต† เดชเดถเตเดšเดพเดคเตเดคเดฒ เดŸเดพเดธเตโ€Œเด•เตเด•เตเด•เตพ, เดญเดพเด—เด‚ I: เด’เดฐเต เด†เดฎเตเด–เด‚

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด†เดตเดถเตเดฏเด•เดคเด•เตพ

เดžเดพเตป เด‡เดคเดฟเดจเด•เด‚ เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดค เดตเดธเตเดคเตเดค เด•เดพเดฐเดฃเด‚, เดธเต‡เดตเดจเดคเตเดคเดฟเดจเต เดŽเดจเตเดคเตเดšเต†เดฏเตเดฏเดพเตป เด•เดดเดฟเดฏเตเดฎเต†เดจเตเดจเดคเดฟเดจเตเดฑเต† เด’เดฐเต เดšเต†เดฑเดฟเดฏ เดฒเดฟเดธเตเดฑเตเดฑเต เด‰เดฃเตเดŸเดพเด•เตเด•เดพเด‚:

  1. เดธเต†เด•เตเดฏเต‚เดฐเดฟเดฑเตเดฑเดฟเด•เดณเตเด‚ เด…เดตเดฏเตเดŸเต† เด…เดตเดฒเต‹เด•เดจเดตเตเด‚ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด• (เดฒเดพเดญเดจเดทเตเดŸเด™เตเด™เตพ, เดฌเดพเดฒเตปเดธเต เดทเต€เดฑเตเดฑเต, เดชเดฃเดฎเตŠเดดเตเด•เตเด•เต - เด•เดดเดฟเดžเตเดž เดตเตผเดทเดคเตเดคเต†) - เดชเดคเดฟเดตเดพเดฏเดฟ
  2. เดšเดฐเดฟเดคเตเดฐเดชเดฐเดฎเดพเดฏ เดกเดพเดฑเตเดฑ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด• (เด“เดฐเต‹ เดตเตเดฏเดพเดชเดพเดฐ เดตเตผเดทเดคเตเดคเดฟเดจเตเด‚, เดŸเตเดฐเต‡เดกเดฟเด‚เด—เดฟเดจเตเดฑเต† เด…เดตเดธเดพเดจ เดตเดฟเดฒเดฏเตเดŸเต† เด…เด™เตเด™เต‡เดฏเดฑเตเดฑเดคเตเดคเต† เดฎเต‚เดฒเตเดฏเด™เตเด™เตพ เด•เดฃเตเดŸเต†เดคเตเดคเตเด•) - เดชเดคเดฟเดตเดพเดฏเดฟ
  3. เดเดฑเตเดฑเดตเตเด‚ เดชเตเดคเดฟเดฏ เดŸเตเดฐเต‡เดกเดฟเด‚เด—เต เดกเดพเดฑเตเดฑ เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด• - เดชเดคเดฟเดตเดพเดฏเดฟ
  4. เด“เดฐเต‹ เดธเตเดฐเด•เตเดทเดฏเตเด•เตเด•เตเด‚ เดตเต‡เดฃเตเดŸเดฟเดฏเตเดณเตเดณ เดธเต‚เดšเด•เด™เตเด™เดณเตเดŸเต† เด’เดฐเต เด‡เดทเตโ€ŒเดŸเดพเดจเตเดธเตƒเดค เดฒเดฟเดธเตเดฑเตเดฑเต เด…เดชเตโ€Œเดฒเต‹เดกเต เดšเต†เดฏเตเดฏเตเด• - เดชเดคเดฟเดตเดพเดฏเดฟ

เดชเตเดฐเดคเต€เด•เตเดทเดฟเดšเตเดšเดคเตเดชเต‹เดฒเต†, เดžเด™เตเด™เตพ เด†เดฆเตเดฏเด‚ เดฎเตเดคเตฝ เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดชเต‡เดฐเต เดคเดฟเดฐเดžเตเดžเต†เดŸเตเด•เตเด•เตเดจเตเดจเต: เดนเต‹เตผเดŸเตเดŸเตบ

เดžเด™เตเด™เตพ เด…เดŸเดฟเดธเตเดฅเดพเดจ เดธเต—เด•เดฐเตเดฏเด™เตเด™เตพ เด’เดฐเตเด•เตเด•เตเดจเตเดจเต

เดถเต€เตผเดทเด•เด‚ เดคเต€เตผเดšเตเดšเดฏเดพเดฏเตเด‚ เดถเด•เตเดคเดฎเดพเดฃเต, เดŽเดจเตเดจเดฟเดฐเตเดจเตเดจเดพเดฒเตเด‚, เดกเต‹เด•เตเด•เตผ-เด•เดฎเตเดชเต‹เดธเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพ เดšเต†เดฏเตเดฏเต‡เดฃเตเดŸเดคเต เด•เดพเดซเตเด• (เด’เดชเตเดชเด‚ เดธเต‚เด•เตเด•เต€เดชเตเดชเตผ - เด’เดฐเต เด•เดฃเตเดŸเต†เดฏเตโ€Œเดจเดฑเดฟเตฝ), kafdrop (เดตเดฟเดทเดฏเด™เตเด™เดณเดฟเดฒเต† เดธเดจเตเดฆเต‡เดถเด™เตเด™เตพ เดจเต‹เด•เตเด•เดฃเดฎเต†เด™เตเด•เดฟเตฝ), mongodb เดŽเดจเตเดจเดฟเดต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดกเต‹เด•เตเด•เตผ-เด•เดฎเตเดชเต‹เดธเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดŽเดดเตเดคเตเด•. เดจเดฎเตเด•เตเด•เต เดฒเดญเดฟเด•เตเด•เตเดจเตเดจเต [docker-compose.yml](https://github.com/Egnod/horton/blob/562fa5ec14df952cd74760acf76e141707d2ef58/docker-compose.yml) เด‡เดจเดฟเดชเตเดชเดฑเดฏเตเดจเตเดจ เดซเต‹เดฎเดฟเตฝ:

version: '3'

services:
  db:
    container_name: horton-mongodb-local
    image: mongo:4.2-bionic
    command: mongod --port 20017
    restart: always
    ports:
      - 20017:20017
    environment:
      - MONGO_INITDB_DATABASE=horton
      - MONGO_INITDB_ROOT_USERNAME=admin
      - MONGO_INITDB_ROOT_PASSWORD=admin_password

  kafka-service:
    container_name: horton-kafka-local
    image: obsidiandynamics/kafka
    restart: always
    ports:
      - "2181:2181"
      - "9092:9092"
    environment:
      KAFKA_LISTENERS: "INTERNAL://:29092,EXTERNAL://:9092"
      KAFKA_ADVERTISED_LISTENERS: "INTERNAL://kafka-service:29092,EXTERNAL://localhost:9092"
      KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT"
      KAFKA_INTER_BROKER_LISTENER_NAME: "INTERNAL"
      KAFKA_ZOOKEEPER_SESSION_TIMEOUT: "6000"
      KAFKA_RESTART_ATTEMPTS: "10"
      KAFKA_RESTART_DELAY: "5"
      ZOOKEEPER_AUTOPURGE_PURGE_INTERVAL: "0"

  kafdrop:
    container_name: horton-kafdrop-local
    image: 'obsidiandynamics/kafdrop:latest'
    restart: always
    ports:
      - '9000:9000'
    environment:
      KAFKA_BROKERCONNECT: kafka-service:29092
    depends_on:
      - kafka-service

เด‡เดตเดฟเดŸเต† เดธเด™เตเด•เต€เตผเดฃเตเดฃเดฎเดพเดฏ เด’เดจเตเดจเตเด‚ เดคเดจเตเดจเต†เดฏเดฟเดฒเตเดฒ. เด•เดพเดซเตเด•เดฏเตเด•เตเด•เดพเดฏเดฟ เดฐเดฃเตเดŸเต เดถเตเดฐเต‹เดคเดพเด•เตเด•เดณเต† เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเต: เด’เดจเตเดจเต (เด†เดจเตเดคเดฐเดฟเด•เด‚) เด•เต‹เดฎเตเดชเต‹เดธเดฟเดฑเตเดฑเต เดจเต†เดฑเตเดฑเตโ€Œเดตเตผเด•เตเด•เดฟเดจเตเดณเตเดณเดฟเตฝ เด‰เดชเดฏเต‹เด—เดฟเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต, เดฐเดฃเตเดŸเดพเดฎเดคเตเดคเต‡เดคเต (เดฌเดพเดนเตเดฏเดฎเตเดณเตเดณเดคเต) เดชเตเดฑเดคเตเดคเต เดจเดฟเดจเตเดจเตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพเด•เตเด•เดพเดฏเดฟ, เด…เดคเดฟเดจเดพเตฝ เด…เดตเตผ เด…เดคเต เดชเตเดฑเดคเตเดคเต‡เด•เตเด•เต เด•เตˆเดฎเดพเดฑเดฟ. 2181 - เดฎเตƒเด—เดถเดพเดฒเดพ เดชเต‹เตผเดŸเตเดŸเต. เดฌเดพเด•เตเด•เดฟ, เดžเดพเตป เด•เดฐเตเดคเตเดจเตเดจเต, เดตเตเดฏเด•เตเดคเดฎเดพเดฃเต.

เดชเดฆเตเดงเดคเดฟเดฏเตเดŸเต† เด…เดธเตเดฅเดฟเด•เต‚เดŸเด‚ เดคเดฏเตเดฏเดพเดฑเดพเด•เตเด•เตเดจเตเดจเต

เด…เดŸเดฟเดธเตเดฅเดพเดจ เดชเดคเดฟเดชเตเดชเดฟเตฝ, เดžเด™เตเด™เดณเตเดŸเต† เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเตเดฑเต† เด˜เดŸเดจ เด‡เดคเตเดชเต‹เดฒเต†เดฏเดพเดฏเดฟเดฐเดฟเด•เตเด•เดฃเด‚:

horton
โ”œโ”€โ”€ docker-compose.yml
โ””โ”€โ”€ horton
    โ”œโ”€โ”€ agents.py *
    โ”œโ”€โ”€ alphavantage.py *
    โ”œโ”€โ”€ app.py *
    โ”œโ”€โ”€ config.py
    โ”œโ”€โ”€ database
    โ”‚   โ”œโ”€โ”€ connect.py
    โ”‚   โ”œโ”€โ”€ cruds
    โ”‚   โ”‚   โ”œโ”€โ”€ base.py
    โ”‚   โ”‚   โ”œโ”€โ”€ __init__.py
    โ”‚   โ”‚   โ””โ”€โ”€ security.py *
    โ”‚   โ””โ”€โ”€ __init__.py
    โ”œโ”€โ”€ __init__.py
    โ”œโ”€โ”€ records.py *
    โ””โ”€โ”€ tasks.py *

*เดžเดพเตป เดฐเต‡เด–เดชเตเดชเต†เดŸเตเดคเตเดคเดฟเดฏเดคเต†เดฒเตเดฒเดพเด‚ เดžเด™เตเด™เตพ เด‡เดคเตเดตเดฐเต† เดธเตเดชเตผเดถเดฟเดšเตเดšเดฟเดŸเตเดŸเดฟเดฒเตเดฒ, เดžเด™เตเด™เตพ เดถเต‚เดจเตเดฏเดฎเดพเดฏ เดซเดฏเดฒเตเด•เตพ เดธเตƒเดทเตเดŸเดฟเด•เตเด•เตเดจเตเดจเต.**

เดžเด™เตเด™เตพ เด’เดฐเต เด˜เดŸเดจ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต. เด‡เดจเดฟ เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเดพเดฏ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เดšเต‡เตผเด•เตเด•เตเด•เดฏเตเด‚ เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเตป เดŽเดดเตเดคเดฟ mongodb-เดฒเต‡เด•เตเด•เต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เตเด•เดฏเตเด‚ เดšเต†เดฏเตเดฏเดพเด‚. เดฒเต‡เด–เดจเดคเตเดคเดฟเดฒเต† เดซเดฏเดฒเตเด•เดณเตเดŸเต† เดชเต‚เตผเดฃเตเดฃเดฎเดพเดฏ เดตเดพเดšเด•เด‚ เดžเดพเตป เดจเตฝเด•เดฟเดฒเตเดฒ, เด…เดคเต เด•เดพเดฒเดคเดพเดฎเดธเด‚ เดตเดฐเตเดคเตเดคเดพเดคเดฟเดฐเดฟเด•เตเด•เดพเตป, เดŽเดจเตเดจเดพเตฝ เด†เดตเดถเตเดฏเดฎเดพเดฏ เดชเดคเดฟเดชเตเดชเตเด•เดณเดฟเดฒเต‡เด•เตเด•เต เดžเดพเตป เดฒเดฟเด™เตเด•เตเด•เตพ เดจเตฝเด•เตเด‚.

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเดฟเดจเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เดณเตเด‚ เดฎเต†เดฑเตเดฑเดพเดฏเตเด‚ เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต เดจเดฎเตเด•เตเด•เต เด†เดฐเด‚เดญเดฟเด•เตเด•เดพเด‚ - pyproject.toml

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ, เดžเด™เตเด™เตพ เดกเดฟเดชเตปเดกเตปเดธเดฟเด•เตพ เด‡เตปเดธเตเดฑเตเดฑเดพเตพ เดšเต†เดฏเตเดคเต เด’เดฐเต virtualenv เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเตป เดคเตเดŸเด™เตเด™เตเดจเตเดจเต (เด…เดฒเตเดฒเต†เด™เตเด•เดฟเตฝ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เดธเตเดตเดฏเด‚ venv เดซเต‹เตพเดกเตผ เดธเตƒเดทเตเดŸเดฟเดšเตเดšเต เดชเดฐเดฟเดธเตเดฅเดฟเดคเดฟ เดธเดœเต€เดตเดฎเดพเด•เตเด•เดพเด‚):

pip3 install poetry (ะตัะปะธ ะตั‰ั‘ ะฝะต ัƒัั‚ะฐะฝะพะฒะปะตะฝะพ)
poetry install

เด‡เดจเดฟ เดจเดฎเตเด•เตเด•เต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚ config.yml - เด•เตเดฐเต†เดกเตปเดทเตเดฏเดฒเตเด•เดณเตเด‚ เดŽเดตเดฟเดŸเต† เดคเดŸเตเดŸเดฃเด‚. เด†เตฝเดซเดตเดพเดจเตเดฑเต‡เดœเดฟเดจเดพเดฏเดฟ เดจเดฟเด™เตเด™เตพเด•เตเด•เต เด‰เดŸเตป เดคเดจเตเดจเต† เดกเดพเดฑเตเดฑ เด…เดตเดฟเดŸเต† เดธเตเดฅเดพเดชเดฟเด•เตเด•เดพเด‚. เดถเดฐเดฟ, เดจเดฎเตเด•เตเด•เต เดฎเตเดจเตเดจเต‹เดŸเตเดŸเต เดชเต‹เด•เดพเด‚ config.py - เดžเด™เตเด™เดณเตเดŸเต† เด•เต‹เตบเดซเดฟเด—เดฑเต‡เดทเดจเดฟเตฝ เดจเดฟเดจเตเดจเต เด†เดชเตเดฒเดฟเด•เตเด•เต‡เดทเดจเตเดฑเต† เดกเดพเดฑเตเดฑ เดŽเด•เตเดธเตเดŸเตเดฐเดพเด•เตเดฑเตเดฑเต เดšเต†เดฏเตเดฏเตเด•. เด…เดคเต†, เดžเดพเตป เดธเดฎเตเดฎเดคเดฟเด•เตเด•เตเดจเตเดจเต, เดžเดพเตป เดŽเดจเตเดฑเต† เดฒเดฟเดฌเต เด‰เดชเดฏเต‹เด—เดฟเดšเตเดšเต - เดธเดพเดคเตเดฐเดฟ.

เดฎเต‹เด‚เด—เต‹เดฏเดฟเดฒเต‡เด•เตเด•เต เด•เดฃเด•เตเดฑเตเดฑเตเดšเต†เดฏเตเดฏเตเดฎเตเดชเต‹เตพ, เดŽเดฒเตเดฒเดพเด‚ เดตเดณเดฐเต† เดฒเดณเดฟเดคเดฎเดพเดฃเต. เดชเตเดฐเด–เตเดฏเดพเดชเดฟเดšเตเดšเต เด•เตเดฒเดฏเดจเตเดฑเต เด•เตเดฒเดพเดธเต เดฌเดจเตเดงเดฟเดชเตเดชเดฟเด•เตเด•เดพเตป เด’เดชเตเดชเด‚ เด…เดŸเดฟเดธเตเดฅเดพเดจ เด•เตเดฒเดพเดธเต เด•เตเดฐเต‚เดกเตโ€Œเดธเดฟเดจเดพเดฏเดฟ, เดถเต‡เด–เดฐเด™เตเด™เดณเต†เด•เตเด•เตเดฑเดฟเดšเตเดšเตเดณเตเดณ เด…เดจเตเดตเต‡เดทเดฃเด™เตเด™เตพ เดŽเดณเตเดชเตเดชเดฎเดพเด•เตเด•เตเดจเตเดจเดคเดฟเดจเต.

เด…เดŸเตเดคเตเดคเดคเดพเดฏเดฟ เดŽเดจเตเดคเต เดธเด‚เดญเดตเดฟเด•เตเด•เตเด‚?

เดฒเต‡เด–เดจเด‚ เดฆเตˆเตผเด˜เตเดฏเดฎเต‡เดฑเดฟเดฏเดคเดฒเตเดฒ, เด•เดพเดฐเดฃเด‚ เด‡เดตเดฟเดŸเต† เดžเดพเตป เดชเตเดฐเดšเต‹เดฆเดจเดคเตเดคเต†เดฏเตเด‚ เดคเดฏเตเดฏเดพเดฑเต†เดŸเตเดชเตเดชเดฟเดจเต†เดฏเตเด‚ เด•เตเดฑเดฟเดšเตเดšเต เดฎเดพเดคเตเดฐเดฎเดพเดฃเต เดธเด‚เดธเดพเดฐเดฟเด•เตเด•เตเดจเตเดจเดคเต, เด…เดคเดฟเดจเดพเตฝ เดŽเดจเตเดจเต† เด•เตเดฑเตเดฑเดชเตเดชเต†เดŸเตเดคเตเดคเดฐเตเดคเต - เด…เดŸเตเดคเตเดค เดญเดพเด—เดคเตเดคเดฟเดจเต เด†เด•เตเดทเดจเตเด‚ เด—เตเดฐเดพเดซเดฟเด•เตเดธเตเด‚ เด‰เดฃเตเดŸเดพเด•เตเดฎเต†เดจเตเดจเต เดžเดพเตป เดตเดพเด—เตเดฆเดพเดจเด‚ เดšเต†เดฏเตเดฏเตเดจเตเดจเต.

เด…เดคเดฟเดจเดพเตฝ, เดˆ เด…เดŸเตเดคเตเดค เดญเดพเด—เดคเตเดคเต เดžเด™เตเด™เตพ:

  1. เดจเดฎเตเด•เตเด•เต เด†เดตเดถเตเดฏเดฎเตเดณเตเดณ เดŽเตปเดกเต เดชเต‹เดฏเดฟเดจเตเดฑเตเด•เตพเด•เตเด•เดพเดฏเตเดณเตเดณ เด…เดญเตเดฏเตผเดคเตเดฅเดจเด•เตพเด•เตเด•เตŠเดชเตเดชเด‚ aiohttp-เดฏเดฟเตฝ เด†เตฝเดซเดตเดพเดจเตเดฑเต‡เดœเดฟเดจเดพเดฏเดฟ เด’เดฐเต เดšเต†เดฑเดฟเดฏ เด•เตเดฒเดฏเดจเตเดฑเต เดŽเดดเตเดคเดพเด‚.
  2. เดธเต†เด•เตเดฏเต‚เดฐเดฟเดฑเตเดฑเดฟเด•เดณเตเดŸเต†เดฏเตเด‚ เดšเดฐเดฟเดคเตเดฐเดชเดฐเดฎเดพเดฏ เดตเดฟเดฒเด•เดณเตเดŸเต†เดฏเตเด‚ เดกเดพเดฑเตเดฑ เดถเต‡เด–เดฐเดฟเด•เตเด•เตเดจเตเดจ เด’เดฐเต เดเดœเดจเตเดฑเดฟเดจเต† เดจเดฎเตเด•เตเด•เต เดธเตƒเดทเตเดŸเดฟเด•เตเด•เดพเด‚.

เดชเตเดฐเต‹เดœเด•เตเดฑเตเดฑเต เด•เต‹เดกเต

เดˆ เดญเดพเด—เดคเตเดคเดฟเดจเตเดณเตเดณ เด•เต‹เดกเต

เด…เดตเดฒเด‚เดฌเด‚: www.habr.com

เด’เดฐเต เด…เดญเดฟเดชเตเดฐเดพเดฏเด‚ เดšเต‡เตผเด•เตเด•เตเด•