Dearadh an tseirbhís All File Converter mar chóras SaaS dáilte inscálaithe bunaithe ar an stoic nua-aimseartha a-ashincrónach Python 3.12. Roinntear an ailtireacht i sraitheanna neamhspleácha: glacadh le himeachtaí líonra, an t-ordú tascanna, feidhmiú iolraitheoirí troma dénárcha aonraithe, agus an lúb analatach.
1. Stoic ghinearálta teicneolaíochta agus ailtireacht an chórais
Tá prionsabail an ard-thrchurtha (high-throughput), an tomhais íosta cuimhne, agus na cosanta ar theipeanna mar bhonn agus mar thaca ag an ardán:
- Telegram Bot Framework:
Aiogram 3.13, ag rith i mód Webhook le bailíochtú comharthaí rúnda agus scagairí saincheaptha timthriall saoil teachtaireachtaí. - Geata Gréasáin agus REST API:
FastAPIbunaithe ar an bhfreastalaí ASGI Uvicorn le seachadadh sruthaithe asincrónach de chomhaid dhénárcha (FileResponse) agus glanadh cúlra tríBackgroundTasks. - Bróicéir scuaine agus taisce:
Redis 7(bainistíocht tascanna Celery, glasáil i gcoinne coinníollacha cine, cosaint i gcoinne brute-force, taisceadh seisiún). - Feidhmeannach Cúlra (Task Queue):
Celery 5.4le linn-phool tiomnaithe d'oibrithe i gcoimeádán aonraitheconverter_worker. - Bunachar Sonraí:
PostgreSQL 16leis an tsraith ORMSQLAlchemy 2.0 (asyncpg), linn de nasc buan (20+10 overflow) agus athiatú uathoibríoch d'idirbhearta teipthe (@db_retry). - Imlíne líonra: Tollánú trí
Cloudflare Zero Trustle cosc ar rochtain díreach IP ar an bhfreastalaí tríd an Middleware.
2. Scuaine asincrónacha agus aonrú ríomhanna troma (Celery + Redis)
Cruthaíonn tiontú comhad meán agus pacáistí oifige buaic-ualach ar an CPU agus RAM. Chun nach gcuirfэг bac ar phróiseáil teachtaireachtaí isteach i Telegram le linn oibríochtaí troma, cuirtear aonrú dian i bhfeidhm:
- Tarmligean tascanna chuig Redis: Agus formáid á roghnú, cláraíonn an próiseálaí Telegram an tasc sa bhunachar sonraí leis an stádas
PROCESSINGagus cuireann sé an tasc sa scuainetasks.execute_conversiontrí Celery. - Coimeádán oibrí aonraithe: Déantar fóntais tiontaithe a fhorghníomhú i gcoimeádán Linux ar leith lena dteorainn féin d'am próiseálaí agus cuimhne.
- Rialú ar reo agus teorainneacha ama: Tá glaonna ar fhóntais sheachtracha fillte i gcomhthéacs asincrónach le rialú dian ama (
conversion_timeout_sec = 180). Má sháraítear an teorainn, críochnaítear an próiseas go forneartach tríproc.kill(), ag saoradh acmhainní. - Fallback Frithsheasmhach in aghaidh Teipe: Má tá an bróicéir Redis do-rochtana go sealadach, glacann an díspatcher áitiúil asincrónach an tasc go huathoibríoch agus déantar é a fhorghníomhú go díreach gan teip don úsáideoir.
3. Píblíne inneall tiontaithe speisialta
Úsáidtear fóntais agus leabharlanna dúchasacha speisialta do gach cineál sonraí:
- Doiciméid agus táblaí (LibreOffice): Pacáiste oifige gan cheann (
soffice --headless) le haghaidh rindreála cruinn de DOCX, XLSX, PPTX, RTF, ODT go PDF nó comhaid téacs. - Fuaime agus físeáin sruthaithe (FFmpeg): Traschódú il-snáithe de chódóga físe (H.264), códóga fuaime (MP3, OGG Opus), eastóscadh rianta fuaime, giniúint GIF (scagaire Lanczos) agus gearradh cearnach (1:1) de theachtaireachtaí físe Telegram.
- Próiseáil ardluais PDF (Poppler Utils): Fóntais
pdftotext(eastóscadh láithreach de théacs formáidithe in UTF-8) aguspdftoppm(rindreáil leathanach ar leathanach de PDF go híomhánna rastair gan costais overhead LibreOffice). - Aitheantas optúil (Tesseract OCR): Eastóscadh néar-líonra de théacs clóite ó scananna agus grianghraif i 40+ teanga.
- Grafaicí rastair agus veicteora: Leabharlanna
Pillow(lena n-áirítear tacaíocht d'fhormáidí HEIC agus AVIF),CairoSVGdo ghrafaicí veicteora aguslottiedo sticéir beochana Telegram (.TGS). - Leabhair, fotheidil agus clónna: Inneall
Calibre(ebook-convert), parsálaí fotheidilpysubs2(SRT, VTT, ASS, SSA) agus tiomsaitheoir clónnafonttools(comhbhrú Brotli in WOFF2).
4. Cosaint acmhainní coisctheach (System Guard)
Chun cosaint a dhéanamh ar thitim an fhreastalaí mar gheall ar easpa cuimhne (OOM Killer), tá an tseirbhís dagnóis choiscigh System Guard curtha i bhfeidhm. Sula nglactar le comhad le haghaidh próiseála, seiceálann an córas príomh-mhéadracht an óstáin:
- Cuimhne oibriúcháin saor in aisce (RAM): Íosmhéid 500 MB de spás saor in aisce (
guard_min_free_ram_mb). - Spás Diosca: Íosmhéid 2 GB de spás saor in aisce san eolaire
/tmp(guard_min_free_disk_mb). - Scuaine tascanna: Teorainn ar fhad scuaine Celery (nach mó ná 20 tasc ag fanacht).
Má sháraítear na teorainneacha, cumasaíonn an tseirbhís an chosaint go sealadach (HTTP 503 / teachtaireacht sa chat), ag cosc ró-ualach ar an bhfreastalaí agus ag seoladh foláirimh láithreach chuig na rialaitheoirí in Telegram.
5. Timthriall saoil comhad agus slándáil (GDPR)
Dearadh an ailtireacht ar an tsamhail Zero-Data-Footprint:
- Íoslódáiltear comhaid úsáideoirí isteach i imleabhar slán
tmp/conversions/le réamhíomháir uathúla bunaithe ar aitheantóirí tascanna. - Fanann comhaid ar fáil go dian laistigh den seisiún oibre — gan ach 15 nóiméad ar a mhéad (900 soicind).
- Scriosann an bailitheoir bruscar uathoibríoch na comhaid bhunaidh agus réidh díreach tar éis deimhniú a fháil ar sheoladh rathúil chuig an gcomhrá nó nuair a théann teorainn ama an tseisiúin in éag.
- Ní stórálann an bunachar sonraí PostgreSQL comhaid dhénárcha nó téacsanna pearsanta doiciméad — ní choinnítear ach meiteashonraí teicniúla ainmhithe sna táblaí (formáidí, méideanna i mbearta, am oibríochta, stádais).
6. REST API uilíoch do sheirbhísí gréasáin seachtracha
Dearadh an tseirbhís ó thús mar chúlchríoch il-ardáin. Chomh maith leis an mbata, oibríonn comhéadan cláir slán lán-chuimsitheach do shuíomhanna gréasáin (mar shampla, ar Django) agus bots seachtracha:
GET /api/v1/formats— maitrís JSON dinimiciúil de threoiteanna tiontaithe ar fáil, sioncronaithe le socruithe Google Sheets.POST /api/v1/convert— pointe críochnaithe uilíoch a ghlacann lemultipart/form-data(comhad, spriocfhormáid, ID cliant seachtrach) agus a th қайreann sruth réidh beart mar íoslódáil díreach.- Údarú le Bearer-thokens (
WEBHOOK_REFRESH_TOKEN) le cosaint i gcoinne ionsaithe ama trísecrets.compare_digest.
7. Painéal rialaithe agus Observability (NiceGUI + AG Grid)
Tá monatóireacht ar tháscairí gnó agus ar stát an chórais aistrithe go dtí painéal dúchasach Single-Page bunaithe ar NiceGUI 2.x:
- Táblaí idirghníomhacha
AG Grid (v32+)le scagairí ticbhosca stíl Excel saincheaptha (aggrid_filters.js). - Monatóireacht ar scuaineanna, moilleanna soláthraithe API, agus ping PostgreSQL / Redis i bhfíor-am.
- Scagadh trí-thrá seachas dátaí le comhtháthú gan uaim den deais BI
Metabasetrí JWT-thokens sínithe.