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: FastAPI bunaithe 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.4 le linn-phool tiomnaithe d'oibrithe i gcoimeádán aonraithe converter_worker.
  • Bunachar Sonraí: PostgreSQL 16 leis an tsraith ORM SQLAlchemy 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 Trust le 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 PROCESSING agus cuireann sé an tasc sa scuaine tasks.execute_conversion trí 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) agus pdftoppm (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), CairoSVG do ghrafaicí veicteora agus lottie do sticéir beochana Telegram (.TGS).
  • Leabhair, fotheidil agus clónna: Inneall Calibre (ebook-convert), parsálaí fotheidil pysubs2 (SRT, VTT, ASS, SSA) agus tiomsaitheoir clónna fonttools (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 le multipart/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 Metabase trí JWT-thokens sínithe.