#766

Atsisiųsti failai pirmiausia sugula į darbo aplanką kompiuteryje (paprastai C:\orders). Staklės iš jo paprastai neskaito: joms reikia tinklo aplanko arba prijungto disko. Kopijavimu ten užsiima sinchronizavimas.

Kada jis paleidžiamas

  • po kiekvieno užsakymų patikrinimo — tai yra kiekvieną ciklą pagal tvarkaraštį;
  • po to, kai programa baigė failų konvertavimą;
  • rankomis — mygtuku „Tikrinti dabar“ kortelėje „Pagrindinis“, jis pravaro visą ciklą kartu su kopijavimu.

Atskiro mygtuko „tik sinchronizuoti“ nėra.

Kas būtent kopijuojama

Programa eina pagal taisykles iš failo synchronize_folders.txt. Kiekviena taisyklė — tai pora „iš kur“ ir „kur“. Kaip ji sutvarkyta, aprašyta straipsnyje Maršrutų taisyklės: eilutės formatas ir du režimai.

Taisyklės viduje programa apeina visą šaltinio aplanką, įskaitant įdėtus aplankus, ir apie kiekvieną failą sprendžia, ar jį kopijuoti:

  • Failas be užsakymo numerio kelyje praleidžiamas. Numerio ieškoma aplankų struktūroje; jei jo nėra, failas laikomas pašaliniu ir sinchronizavimas jo neliečia.
  • SVG, kuris dar konvertuojamas, praleidžiamas. Kitaip į stakles nuvažiuotų ruošinys vietoj paruošto failo. Kai konvertavimas baigsis, diske liks jau EMF — jį ir nukopijuos kitas ciklas.
  • Failas, kuris jau yra paskirtyje ir to paties dydžio, pakartotinai nekopijuojamas. Todėl įprastas ciklas praeina greitai net ir dideliame aplanke: iš naujo perdedami tik nauji ir pasikeitę failai.

Pasenusių SVG tvarkymas paskirtyje

Jei paskirties aplanke šalia guli vardas.svg ir vardas.emf, SVG pašalinamas: jis pasenęs, jį pakeitė EMF. Tai veikia tik folder tipo taisyklėms.

Jei paskirties aplankas nepasiekiamas

Programa rašo klaidą į žurnalą ir pereina prie kitos taisyklės. Užsakymų atsisiuntimas ir konvertavimas dėl to nesustoja — failai lieka darbo aplanke ir nuvažiuos į stakles, kai tik tinklo aplankas vėl atsiras.

Užsakymai, kurių nėra programos duomenų bazėje

Jei darbo aplanke guli užsakymų failai, kurių ši programa neatsisiuntė (pavyzdžiui, liko nuo praėjusios įdiegties), žurnale atsiras eilutė pavidalo „orders skipped (not in database)“ su užsakymų numeriais ir kelio pavyzdžiu. Tokie failai nekopijuojami ir patys nešalinami — kaip atlaisvinti jiems vietos, parašyta straipsnyje Kiek užsakymų saugoti ir kaip valyti diską.

Antroji pusė

Programa atsimena, kokius failus ir kur ji nukopijavo. Todėl šalindama užsakymą ji išvalo ne tik darbo aplanką, bet ir nukopijuotus failus paskirtyse — žr. Pašalinti užsakymą ir atsisiųsti jį iš naujo.

Kaip patikrinti, kad viskas nuvažiavo

Tam yra langas „Aplankų sutikrinimas“: jis rodo pagal kiekvieną užsakymą, kiek failų yra šaltinyje ir kiek paskirtyje.