Tutvustus
Ma töötan ettevõttes, kus võtame palju partii töökohtade töötlemine miljoneid plaate andmete iga päev ja ma olen mõelnud viimasel ajal umbes kõik masinad, mis istuvad iga päev midagi mitu tundi. Kas ei oleks hea, kui saaksime kasutada neid masinaid toetada töötlemise võimsus on meie süsteemid? Selles sätestatud esemete ma lähen vaatama võimalikku kasu töötab kontoris võrku kasutades virtualised keskkondades.
In 1. osa I andis ülevaate süsteemi ja tehnoloogiate ma olen kasutades samuti arutati mõningaid võimalikest põhjustest, miks sa tahaksid luua office võrku.
Töö Control
Kui sa lähed olema töökorras töökohti siis lähed vaja kuidagi neid hallata. Sinu töö kontrollimise süsteem (oma töökoha server) tuleb tõesti hästi läbi, enne kui üritab joosta kontori võrku. Nii esiteks, millised on ülesanded töö kontrollsüsteem:
- Käsi läbi töökohtade nõudmisel töötajate
- Öelge töötajatele Milliseid töökohti joosta
- Track töökohti
- Tagada, et töökohti on vaid joosta kord
- Pakkuda tööd andmed töötajate või vähemalt neile öelda, kust saada see
Süsteem tuleb ka laiendatav lahendus, mis töötab nüüd ühes asjas võib pikendada joosta mitut liiki töökohtade äri näeb väärt grid lahendus. Näiteks töökohad võivad saada prioriteedid, rohkem kui ühe töökoha liik võib eksisteerida (st mitu koodi alused), lõpuks võid isegi kasutada mitut erinevat töötaja masinaid, mis on optimeeritud iga töökoht (kuigi see ei eemalduda "üldnimetuseks töötaja "idee). Püüdke mõelda tulevikule, kui välja süsteeme, lühiajalise visiooni võib viia pikemas perspektiivis pettumust ja suurenenud arengu aeg.
Töö Server
Me läheme vaja kuskil kontrollida meie töökohti, tuleb seda ainult süsteemi oma võrku, mis on fikseeritud Resource Locator, olgu see IP-aadress, serveri nimi, URL (kasutades sisemist DNS) jne Seda seetõttu Töötajad peavad teadma, kust otsida töökohta, töötajad on vaja leida tööd kontrollisüsteemi (mitte töö kontrollisüsteemi leida töötajad).
Töö server ise ei ole tõesti keeruline ülesanne (nii põhi-süsteem igal juhul), tuleb see salvestada nimekirja töökohti, käsi välja töökohti, saada tulemusi, ning seejärel salvestada need hilisemaks taastamiseks. Kuidas nende osade (nagu näiteks "käsi välja töökohtade") on määratletud võib olla väga lihtne. Hiljem saame laiendada süsteemi lisada halduse liides lisamiseks, muutmiseks, kustutamiseks, peatada töökohti, kuid see on väljaspool seda kasutada.
Ei ole ühtegi põhjust siis, et sinu töö server ei saa virtuaalne masin töötab teie peamine töötlemise server tingimusel et see ei äravool liiga palju ressursse saada. Töö server aga ei pea laialdase kättesaadavuse, kui see läheb alla reede õhtul sa lähed kaotad terve nädalavahetuse töötlemise, potentsiaalselt maksab teile paar nädalat väärt töötlemise ajal (võrreldes oma peamiste töötlemine server üksi) . Te võiksite kaaluda pannes oma töökoha serveri koormus tasakaalustatud keskkonna kõrge kättesaadavus.
Basic Setup
Põhiseadistustest meie töö server koosneb mida Ma helistan üks mu Limp serverite (mis on Li nux, m ySql, P HP). Kood töötab Thea töötajate tegelikult töötavad välja, milliseid töökohti on võimalik käivitada suheldes töökohtade kontrollisüsteemi andmebaasi. Hiljem me võiksime luua veebiteenus ja tegelikult käe läbi töökohtade asemel töötajate tegema rasket tööd ise, kuid nüüd jätkame kasutades KISS põhimõte (Keep it Simple, Stupid!).
Nii saab luua kolm MySQL tabelite tegeleda töökohti. Need on "töökohad", "jobRecords" ja "jobResults".
Siin ma kasutan SQL Buddy väga vähe alternatiiv phpMyAdmin lihtsalt sellepärast, et tema lihtsam paigaldada Centos (teiste jaoks vaata: 10 suurt alternatiive phpMyAdmin )
See tabel koosneb 5 lihtsat valdkondades,
- ID: üheseks identifitseerimiseks töö
- nimi: Võiks olla kliendi viide või mis tahes muudest tunnuste
- Staatus: Sa pead teadma, kui töö on, nt
- 0: Pole alustatud
- 1: Kiirenes
- 2: Lõpetanud
- started_by: Kes alustas teed tööd? See ei ole täiesti nõutud, kuid on tore olla. Ma soovitan jälgida töötajate oma IP-aadress teie võrgus
- started_at: Millal töötaja alustada tööd? Jälgides töökohti, mis ei ole läbinud jooksul X aega teame me peame seda tõstma töö taas ja alustame teise töötaja. Töötajad võiks töötlemise lõpetamist / go offline tahes mitmel põhjusel, voolukatkestust, crash, võrgu kaotus jne
See on lihtne, kuidas seda tabelit võiks laiendada mõne lisaväljad võimaldada statistika jälgimine, lõppaeg veerus näha, kui kaua töö võttis, counter näha, kuidas paljud töötajad kiirenes töö (ilmselt see peab kipuvad 1) töö prioriteediks, nimekirja saab minna edasi ja edasi. Keerukamate töö stsenaariume oleks võimalik täpsustada, kui palju mälu töötajal peab olema juurdepääs (ja seega kasutada ainult sobiva töötaja) või isegi, millist tüüpi töötaja oleks vaja.
Lets lisatakse mõned näiteks töökohti:
Järgmises tabelis taas on üsna lihtne aru saada, need on meie töö arvestust. Nad on seotud peamised töökohtade tabeli veerus "jobs_id". Moodustavad käesoleva tabeli sõltub väga palju andmeid, et pead andma oma töötajatele, laseb teha väga lihtne näide, kus meil on neli veergu:
- ID: ID rekord
- nimi: isiku nimi
- Aadress: Isiku aadress
- jobs_id: töö ID, et see rekord on seotud
Kolmas ja viimane tabel koosneb tulemuste tabel, see on sama palju tasa teha, kui meie andmed tabelis ja millele on lisatud mõned veerud võivad olla osa arvestust tabelis:
- job_record_id: Link tulemuse töö tabel
- Tulemus: Tulemuseks andmed
... Ja ongi kõik, mida vajate töö kontrolli! (Kuigi väga algtasemel) Minu puhul olen osutanud teisest tabelist, kus mu andmeid töötlemiseks asus, kuid see võiks sama hästi on fail, parameetrite joosta simulatsiooni-koodi, siis nime.
Valides töö
Nagu eelnevalt mainitud, töötajate teeme töö korraldamine meie jaoks nüüd, et kõik me peame tõesti tegema, on leida töö, mis vajab töötlemist ja saada teavet. Kuidas me seda teeme? Noh pick meie töö valikukriteeriumid ja tööd otsima, SQL tegin järgmist:
- Võtke kõik töökohad, mis ei ole märgistatud kui valmis, kuid meie töötajate ja reset neist (asendaja __ME__ koos tunnus, kõige lihtsam oleks IP aadress):
UPDATE `töökohti` SET `staatus` = 0, kui "status" = 1 JA "started_by` = __ME__;
- Kasutades meie töö valikukriteeriumid, valige töö ja ütle kontrollisüsteem, et see töötaja tegeleb ta:
UPDATE `töökohti` SET `staatus` = 1, "started_by` = __ME__, "started_at` = NOW () WHERE `staatus` = 0 või
("Status" = 1 JA "started_at"> DATE_SUB (NOW (), intervall X tunnis)) ORDER BY `id` ASC; Haardeseadised töökohti, mis ei ole tagastatud tulemusi X aega me tagada, et iga töö on sõidetud korral töötaja krahh või läheb AWOL.
- Järgmine haarata töökohti Üksikasjad, millele järgneb andmete ise:
SELECT * FROM `töökohad", kui "started_by` = __ME__ LIMIT 1;
SELECT * FROM `job_records" Kui `id` = __JOBID__;
Lõpetamisel töökohtade me lisame meie tulemus arvestust ja kaubamärgi tööd lõpetatud. Pea meeles, kui töökohti saab peatada ja jätkata igal ajal võimaldada teatavat stabiilsust oma skripti. Võib olla, et ülesanne peatab poolel teel ajakohastamise tööd kontrollisüsteemi, et kontrollida kirjete arv töö ja tulemuste arv salvestatud tagasi töö kontrolli süsteem oleks tark tegu.
Lisaks, kuigi see näitab, kuidas töökohta saab valida ja hallata SQL-query raami sa peaksid tõesti olema abstracting oma tööd kontrollida nii, et kui sa otsustad minna kasutades veebiteenust faili põhine süsteem, XML või mis tahes muu süsteemide arvu see ei mõjuta kood kohal.
Töö Configuration
Teine aspekt, mida arvestada, on töö maht ja konfiguratsioonist. Mängides töökohtade konfiguratsiooni saame streik suurepärase tasakaalu kiiruse, protsessi replikatsiooni ja usaldusväärsust. Võtke paar OFA stsenaariumi:
- Tööpakkumised võtta 1 päev iga joosta: See tähendab, et teie töötajad vajavad 15 päeva protsessi iga töö (meenub 10% võimu 2/3rds ajast). See ei ole kindlasti mõistlik konfiguratsiooni, teie töö maht on liiga suur! See võtaks vähemalt topelt aega saada tööd töödeldud peaks esialgse töötaja minna AWOL (time to pick up, et ta ei ole tagastanud tulemus pluss ümbertöötlemise aja järgi). In ideaalne soovid on vähemalt üks täielikult töö kergesti kustutatud lõpuks iga pika tühikäigul nii hoiate töökohti tiksub üle ja halvimal juhul töö võtaks kaks päeva protsess peaks kõigepealt minema puudu.
- Tööpakkumised võtta 1 minut joosta: See tähendab, et teie töötajate aega umbes 15 minutit joosta iga töö. Kuigi see võib tunduda esialgu ideaalne, siis saada lisatööd töötlemise ajal lõunasöögi ajal, kohvipause, koosolekud jne see stsenaarium paneb pinge teistes valdkondades oma süsteem ja tutvustab oma probleeme. Näiteks esmalt oma setup / töötlemine aega suhe ei lähe kohe alla, seega kaotavad süsteemi tõhusust. Teie võrgustik saab olema pidevalt streaming töö teavet erinevate töötajate masendav personal, kes dong oma igapäevases töös. Sa oled ka läheb panna rohkem pingeid oma töö töötlemine server, sest see on tassi läbi palju ja palju väikesteks tükkideks tööd regulaarselt. Lõpuks see olukord, kui teie töö server loojub sa lähed luua tohutu tagasi samamoodi lõpetamata töö arvestades suuremaid töid võiks jätkuva töötlemine õndsalt teadmatuks, et töö server oli raskusi.
Tegelikult ei toimu üks ideaalne konfiguratsioon oma võrku setup, palju sõltub olemasolevate vahendite liiki töö, töö töötsükkel nõuded, võrgundusfunktsioon, ja nii edasi. Kuid mõned juhised oleks:
- Suurus töökohti, nii et iga töötaja võib saada läbi vähemalt 3-4 töökohti kuni 15 tundi (pikim tõenäoliselt jõudeaeg jooksul)
- Mängi töö suurust nii, et setup aeg muutub üsna tühine võrreldes töötlemise ajal (pidades silmas eespool punkt).
- Kui tööd ei ole täielik, topelt aega (võib-olla vähem) ootate seda täitke see oletada, et tema läinud AWOL ja alustame selle teise töötaja. See tähendab, et teil on oodata kuni kolm korda normaalse pikkusega töö see lõpule (võimalik enam kui hilisemad tööd ei). Te võiksite vähendada seda aega, kuid ole ettevaatlik mitte vähendada seda liiga palju, nagu te võib alata paljundusmasinad töötlemise ülesandeid regulaarselt.
- Töö peaks olema sõltumatu väljaspool nõudeid nii palju kui võimalik. Töö server, näiteks tohib ühendust alguses ja lõpus iga töö.
- Ärge küllastub võrk, see on kaks negatiivset mõju, oma päevaste töötajad leiavad võrgu kasutamisel masendav ja probleemid võivad olla kogenud ühendused ajastust välja probleem, et ainult süvenevad, kui te skaala oma võrku.
- Tagada töökohtade võib sõita oma töötajaid. Kui töökohti liiga mälu Intensiivse või kettaruumi intensiivne töö hakkab katkestan ja ainus asi, mida märkad on vähenenud töökohtade arv töödeldud, kellel puudub tegelik põhjus, miks.
Tulemusi esitades töökoha
Kui esitada tulemused töö on oluline kontrollida, et tulemused ei ole esitatud teise töötaja, eriti kui praegune töötaja on olnud seisvate mõnda aega.
Kui tulemused on esitatud tagada tulemuste arv vastab kirjete arv jooksul tööd.
Nagu eelnevalt mainitud, ja seda ei saa üle tähtsustada, ehitada tõrketaluvuseks arvesse töökoha leidmist ja tulemuste esitamist. Töötajad saavad (ja tõenäoliselt) minema peatada mode kõige ebamugav korda ja see tuleb teenindada. Samuti taas abstracting ära oma tulemuste esitamist aitab rahuldada tulevasi muutusi oma tööd kontrollisüsteemi palju lihtsam toime tulla.
Kokkuvõte
Selles section oleme uurinud, mida töö kontrolli server peab tegema ja kuidas saada väga lihtne süsteem loodud. Me arutasime, kuidas hankida tööd alates kontrollisüsteemi ning kuidas seadistada töökohti saada kõige meie oma kontori võrgusüsteemi. Lõpetamiseks punkt või kaks Tulemusi esitades tagasi töö kontrolli server esitas.
- Töö kontrolli server haldab töökohti ja tagab, et kõik tööd üksused on komplekteeritud
- Autor abstracting oma tööd select / tulemused esitamise saame muuta tehnoloogia kontrolli server ilma palju probleeme
- Konfigureeri oma töökohtade tagamiseks, et nad töötavad kiiresti ja tõhusalt seadmata liiga palju survet oma võrgu infrastruktuuri, ilma dubleerimata töötlemise ülesandeid regulaarselt.
- Veenduge, et teil ehitada tõrketaluvuseks ja viga checking oma rutiin, töötajad saavad peatada ja jätkata ja kõige ebamugav korda. Pea meeles, et vaadata, kas tulemused on juba esitatud mõne teise töötaja.
Järgmine kord
In 3. osa loome meie virtuaalne töötlemise masin ja luua meie aknad masinad saada idle tööajaga töötajad.