Post tag: application

"Mag-sign in sa Twitter" paggamit ng Zend Framework

Sa pamamagitan ng , Huwebes 17th Marso 2011 01:07 am

Sa kabila ng lahat ng kaba poot sa sandaling ito, naitakda ko upang lumikha ng isang bagong kaba -based application. Ang pagiging isang tao na namamahala ilang account (parehong personal at para sa aking trabaho sa kawanggawa) ko na ay nangangailangan ng isang kasangkapan para sa minsan na lamang ako sa pagkuha ng paligid sa pagsulat (higit pa sa na sa malapit na hinaharap ...).

Nabasa ko na sa Zend_Oauth_Consumer at kung paano ito ay ginagamit upang makakuha ng awtorisasyon para sa pakikipag-ugnay sa kaba gamit ang OAuth . Lahat ng mahusay at magandang, mayroon ko ang aking access key at maaari ko nang masaya mag-post sa ngalan ng isang gumagamit. Mayroong maraming mga mapagkukunan out doon upang gawin ito kaya hindi ako ay mainip tao.

Ang susunod na hakbang ay upang payagan ang mga tao upang bumalik sa website, mag-log in at baguhin ang kanilang mga account. Ito ay kung saan ako naabot ng isang bahagyang problema. Gamit ang mga halimbawa ng code sa mga website nilalayong na gusto ko kaba humihingi sa akin para sa access awtorisasyon muli para sa bawat pag-login, hindi maganda. Pag-scan sa pamamagitan ng framework Hindi ko makita ang anumang bagay na maaaring payagan ang mga lamang sa akin upang humiling ng pagpapatunay. Iyon ay hindi na sabihin nito hindi doon, ngunit doon ay hindi mukhang maging isang authentication na mekanismo na maaaring mahihingi walang alam ang access token na.

Ang mga alternatibo ay upang ipatupad ang isang site-based-log-in o sa anumang paraan mag-imbak access token ang gumagamit sa client (naka-encrypt siyempre). Alinman sa mga tila tulad ng isang magandang / angkop na solusyon.

Magpatuloy sa pagbabasa '"Mag-sign in sa Twitter" paggamit ng Zend Framework' »

Hubad Zend_Layout at Zend_View

, mga Martes-10 Agosto 2010 23:47

Sa artikulong ito tumingin ako sa paggamit ng Zend_Layout at Zend_View kasama sa isang simpleng harap controller upang ipakita kung paano ito ay posible upang simulan ang separating lohika at pagtatanghal ng negosyo sa loob ng iyong application. Ang code Lahat ay magagamit sa github:
Ang ng ng hubad Zend_Layout at Zend_View sa GitHub .

Magpatuloy 'ng hubad Zend_Layout at Zend_View' pagbabasa »

PHP Disenyo Pattern Pattern ng tagamasid

, Martes 29 Disyembre 2009 22:02

Ako ay pagbabasa Head First Design Pattern kamakailan at nagpasyang sumulat ang ilan sa ang mga pattern ng PHP mga halimbawa para sa aking sariling pakinabang. Ang unang isa na ako ay nagpasya na code ay up ang tagamasid Pattern . Ang pormal na kahulugan ng Pattern ng tagamasid ay:

Ang mga tagamasid pattern (isang subset ng asynchronous publish / mag-subscribe ang pattern ) ay isang disenyo ng pattern ng software na kung saan ang isang bagay , na tinatawag na sa paksa, ay nagpapanatili ng isang listahan ng mga nito sa mga dependents, tinatawag observers, at awtomatikong aabisuhan ang mga ito ng anumang mga pagbabago ng estado, karaniwang sa pamamagitan ng pagtawag isa ng kanilang mga pamamaraan . Ito ay pangunahing ginagamit upang ipatupad ang mga ipinamamahagi sistema ng kaganapan ng handling.

Bilang system maging mas maluwag kaisa siguraduhin na kapag ang isang kaganapan ang mangyayari sa lahat ng mga sistema na nangangailangan ng kaalaman ng mga update na ito ay alam. Halimbawa, ang isang blog post, pagkatapos ng pag-save ng isang post maaari naming kailangan i-update ang isang search engine (hal. Lucene), i-update ang aming mga sitemap, mga tag, email subscribe gumagamit, atbp Ang tagamasid pattern ay nagbibigay-daan sa mga developer upang magdagdag ng karagdagang mga tagapakinig nang hindi pag-edit ng kanilang mapapansin object . Sa pamamagitan ng injecting observers (ibig sabihin ng isang search engine update tagamasid, isang sitemap generator, atbp) sa isang paksa (ie blog post ng sistema ng pag-edit) maaari naming payagan ang mga ito upang maisagawa ang lahat ng mga kinakailangang mga update nang walang anumang mga pagbabago.

Magpatuloy sa pagbabasa 'PHP Disenyo Pattern - tagamasid Pattern' »

Office Grid computing gamit Virtual kapaligiran - Part 3

, mga Biyernes 4th Disyembre 2009 23:37

Pagpapakilala

Magtrabaho ako sa isang kumpanya kung saan tumakbo namin ang maraming mga batch trabaho na pagproseso ng mga milyon-milyong ng mga talaan ng data sa bawat araw at ako ay iniisip kamakailan tungkol sa lahat ng mga machine na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa mga ilang oras. Hindi magiging mahusay na kung maaari naming gamitin ang mga machine sa magbolster ang pagproseso ng kapangyarihan ng aming mga system? Sa hanay ng mga artikulo na ako pagpunta sa tumingin sa mga potensyal na benepisyo ng employing ng isang tanggapan grid na gamit ang virtualised kapaligiran.

Sa bahagi 2 namin tumingin sa trabaho server ng ​​tatakbo, at kung paano ang mga trabaho ay dapat na-configure upang makamit ang pinakamalaking halaga ng pagproseso habang tinitiyak na ang bawat trabaho ay naproseso walang sablay.

Pagse-set up ng iyong manggagawa - o malata server

Ang susunod na hakbang sa proseso ay i-set up ang iyong mga virtual na manggagawa. Para sa ako pagpunta sa gamitin ang isang pag-install ng mga centOS na gamit VirtualBox. Ako pagpunta upang i-install ang MySQL at PHP sa server, na kilala rin bilang isang tikod (Li nux, ang m ySQL, P HP) Server (na maaari kong ginawa na pangalan up).

  • I-install ang VirtualBox sa iyong machine sa bintana (sundin ang link)
  • I-download at i-install ang centOS (kasalukuyang bersyon 5.3) sa loob ng isang nilikha virtual machine

Walang point sa akin ng pagpunta sa may marahil 1,000 's ng mga mahusay na mga tutorial out doon (ok, narito ang isa: Paglikha at Managing centOS virtual machine sa ilalim ng virtualbox ). Ang mahalagang punto upang tandaan ipagpalagay ko na tinatawag ko ang aking virtual machine GridMachine.

Bilang malayo bilang aking mga pagpipilian ng ang virtualisation client at operating system pumunta doon ay walang malaking nakahihimok na dahilan para sa bawat pagpipilian. VirtualBox ay isang bagay na gamitin ko sa aking bahay machine at suportado ng ang tatlong pangunahing mga operating system. Pinili ko ang mga centOS bilang nito ang isang magandang matatag na OS at gagamitin ko ito sa aking sariling web server. Ako ay isang mahusay na believer sa mga karapatan na kasangkapan para sa trabaho (bagaman ako ng nag-aaplay sa 'gamitin ang pinakamabilis at pinakamadaling para sa' kuru-kuro dito), kaya kung operating system na nagpapatakbo ng X ang iyong code mas mabilis at mas mahusay na gamitin sa halip :)

Mahalaga siguraduhin na ang iyong VM ay gumagamit ng DHCP, kung hindi man para sa bawat bagong virtual machine ay kailangang naka-configure ang hiwalay na kung saan ay isang bagay na hindi namin want.By gamit ang DHCP hindi namin kailangan i-configure ang mga setting ng network nang paisa-isa para sa mga machine manggagawa, ang DHCP ay ipasa out sa mga IP para sa iyo. Samakatuwid maaari mong kopyahin ang iyong virtual machine tungkol sa opisina nang hindi worrying tungkol sa pagtatakda ng bawat isa hanggang (ito ay mapabuti ang kakayahang sumukat at binabawasan manggagawa administrasyon).

Ang proseso na kailangan mong sikaping upang makamit ay upang makakuha ng isang bagong pisikal machine, install VirtualBox, at pagkatapos ay medyo magkano lumawak ang virtual imahe nang walang magkano ang iba. Maaaring ito ay matalino upang i-setup ang lahat ng iyong mga manggagawa sa isang iba't ibang subnet kaya na maaari mong hindi bababa sa makita kung gaano karaming mga machine ay tumatakbo. Makikita mo rin kailangang mag-set up ang iyong machine sa isang mahabang lease o walang limitasyong lease DHCP.

Paano patakbuhin ang mga Trabaho sa ang manggagawa

Ito ay isang kagiliw-giliw na lugar at may ilang mga wastong pamamaraan para sa pagproseso ng mga trabaho sa manggagawa. Dito kukunin ko na lang pag-usapan ang dalawang pinaka-halata:

  • Magpakailanman tumatakbo ang script: script A, maging ito ng isang shell script, o isang PHP script ay pinaandar nang isang beses sa ang manggagawa at tumatakbo bilang bahagi ng isang walang hanggan loop. Bawas ko na ang paraan na ito bilang isang pag-crash ng script at potensyal na ang iyong mga manggagawa ay itigil upang tumakbo nang walang ilang uri ng interbensyon.
  • Cron based na pagpapatupad ng script: bawat X minuto ang cron demonyo kicks-off ang isang tawag sa iyong script upang makakuha ng mga bagay-bagay pagpunta. Walang ilang pagsuri na ito ay maaaring humantong sa maraming maraming mga kopya ng inyong manggagawa script na tumatakbo.

Aking desisyon ay upang pumunta sa cron kung saan kicks off ang shell script bawat 10 minutes. Aking shell script gumaganap ang mga sumusunod na gawain:

  1. Kumuha ng isang listahan ng proseso at grep ito para sa 'php'. Kung hindi natagpuan pagkatapos ay magpatuloy.
  2. Tawagan ang iyong code sa trabaho, sa aking mga kaso na ito ay magiging isang bagay PHP batay
  3. Manggagawa script nakumpleto nito run
  4. Handa na pumunta muli sa susunod na angkop na tawag

Aking Bash script mukhang isang bagay tulad ng sumusunod:

  #! / Bin / SH
 kung PS palakol | grep-v grep | grep php> / dev / null
 pagkatapos
     echo "Job ay kasalukuyang pinoproseso, lumabas"
 iba
     umalingawngaw ang "Job ay hindi tumatakbo, simulan ngayon"
     php yourJobProcessingScript.php
 Fi 

Tandaan: ang echo ng ay halos ganap na walang kabuluhan, ngunit maaaring makatulong ang susunod na tao na dumating kasama upang subukan at i-edit ang mga ito.

Na concludes ang set up ng mga virtual machine manggagawa, mabilis, simple, at madaling kopyahin sa bawat bagong piraso ng hardware na natanggap. Ang 'kabihasnan' ng sistema ng grid ay talagang hindi sa ang visualized OS na, ang lahat upang gawin sa ang code na nilikha sa trabaho sa proseso, ang configuration ng trabaho, at sa pagtiyak na ang trabaho ay nagpapatakbo kapag naaangkop na (ibig sabihin kapag ang host ay bakante ).

Pagse-set up Windows sa Initialise ng Manggagawa

Ang unang gawain ay upang gumana ang command na kinakailangan upang patakbuhin ang virtual machine mula sa bintana command na linya. Kung na-install virtualBox sa ang default na lokasyon at pinangalanan mo na ang iyong manggagawa GridMachine pagkatapos ay ang command na kinakailangan upang i-load ang iyong manggagawa ay:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxManage.exe" startvm GridMachine 

Subalit upang patakbuhin ang script sa isang 'walang ulo' na estado kailangan naming gamitin:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe"-startvm GridMachine - vrdp = off 

Ito ay simulan ang virtual machine na walang GUI at payagan ang mga ito upang i-save ang estado maganda. Ang pangalawang argumento ay lumiliko off RDP kaya hindi salungat sa mga bintana RDP, o magbigay sa iyo ng isang mensahe tungkol sa pakikinig sa port 3389. Ang mga virtual machine pangalan ay case sensitive!

Susunod, kami ay kailangan upang itakda ang mga bintana upang mag-alis ng aming manggagawa VM-sabay machine ay naging idle. Upang gawin ito (sa Windows XP) kailangan mong pumunta sa Start -> All Programs -> Accessories -> System Tools -> Naka-iskedyul Gawain bilang sa ibaba:

naka-iskedyul na mga gawain

Susunod click sa 'Magdagdag Naka-iskedyul ang Gawain' sinundan sa pamamagitan ng-browse sa magdagdag ng isang pasadyang programa. Mag-navigate sa iyong VBoxManage script at i-click ang ok. Iskedyul ang iyong mga gawain para sa anumang ng mga pagpipilian (kami ay baguhin ito sa isang minuto) at magpatuloy. Pagkatapos laktaw sa susunod na screen windows ka na tatanungin na gusto mong patakbuhin ang gawaing ito, gusto ko iminumungkahi ang alinman sa 'Administrator' o paglikha ng isang bagong privileged gumagamit. Tandaan na hindi namin gusto mong makagambala sa karaniwang kawani ng account sa machine sa anumang punto. I-click ang susunod at ang ipakita ang mga advanced na mga opsyon para sa gawain.

Sa dulo ng textbox run magdagdag ng aming string na 'startvm GridMachine' at matiyak na run na lamang kapag naka-log in ay iniwan unticked. Bisitahin ang gawain ng iskedyul sa tabi at baguhin ang iskedyul ng drop down na ang pagpipiliang 'kapag idle', piliin ang halaga ng oras na gusto mo machine ang maging idle bago lumipat sa sa susunod na tab.

Panghuli untick ang opsyon na estado itigil ang mga gawain kung ito ay tumatakbo ng X halaga ng oras, ngunit garapata ang pagpipilian upang itigil ang mga gawain kung machine ay hindi na naka-idle.

iskedyul

Iyan ay para sa setup ng windows host!

Buod

Sa bahaging ito namin ang set up ng isang virtual machine upang kumilos bilang isang manggagawa, pati na rin ang paraan na kung saan namin tumawag at isakatuparan ang aming mga script sa pagpoproseso ng trabaho (para sa aking sarili ng isang PHP script). Mula dito namin tumingin sa kung paano mag-set up ng aming mga kopya ng mga bintana upang simulan ang virtual machine sa walang ulo mode kapag ang computer ay nagiging idle, at i-save ang kanyang estado kapag ang gumagamit ay magpapatuloy paggamit ng machine. Sana sa puntong ito ikaw ay nakakakita ng kung paano simple ito ay i-set up ganoong isang sistema at nangangati upang makakuha ng ilang mga eksperimento ng pagpunta sa iyong sarili!

Susunod na

Sa Bahagi 4 kami ay naghahanap gamit ang mga tool upang matiyak na kayo ay tumatakbo sa pinakabagong bersyon ng mga pinagkukunan ng code at data upang makuha resulta ay laging up-to-date sa pinakabagong impormasyon sa negosyo at lohika.

Office Grid computing gamit Virtual kapaligiran - Part 2

, mga Biyernes 4th Disyembre 2009 11:23

Pagpapakilala

Magtrabaho ako sa isang kumpanya kung saan tumakbo namin ang maraming mga batch trabaho na pagproseso ng mga milyon-milyong ng mga talaan ng data sa bawat araw at ako ay iniisip kamakailan tungkol sa lahat ng mga machine na umupo sa paligid ng bawat at bawat araw paggawa ng wala para sa mga ilang oras. Hindi magiging mahusay na kung maaari naming gamitin ang mga machine sa magbolster ang pagproseso ng kapangyarihan ng aming mga system? Sa hanay ng mga artikulo na ako pagpunta sa tumingin sa mga potensyal na benepisyo ng employing ng isang tanggapan grid na gamit ang virtualised kapaligiran.

Sa Bahagi 1 ako nagbigay ng isang pangkalahatang-ideya ng system at mga teknolohiya na ako ay gumagamit pati na rin tinalakay ang ilan sa mga potensyal na mga kadahilanan kung bakit gusto mo na lumikha ng isang grid ng opisina.

Job Control

Kung ikaw ay pagpunta upang patakbuhin ang mga trabaho pagkatapos ikaw ay pagpunta sa kailangan ang ilang mga paraan upang pamahalaan ang mga ito. Kailangan ng sistema ng kontrol ng iyong trabaho (sa iyong server sa trabaho) ay talagang naisip bago kahit na sinusubukan mong magpatakbo ng isang grid ng opisina. Kaya una, ano ang mga gawain para sa isang sistema ng kontrol ng trabaho:

  • Ibigay ang mga trabaho sa kahilingan mula sa mga manggagawa
  • Sabihin manggagawa kung ano ang uri ng trabaho upang tumakbo
  • Subaybayan ang mga trabaho
  • Tiyakin na ang mga trabaho ay tatakbo lamang sa sandaling
  • Magbigay ng data trabaho sa mga manggagawa, o hindi bababa sa sabihin sa kanila kung saan upang makakuha ng ito

Din ng sistema ang kailangang extensible, isang solusyon na gumagana para sa ngayon sa isang kaso ay maaaring pinalawak na magpatakbo ng ilang mga uri ng mga trabaho bilang ng negosyo nakikita ang halaga sa isang solusyon ng grid. Halimbawa, ang mga trabaho ay maaaring makakuha ng prayoridad, higit sa isang uri ng trabaho ay maaaring umiiral (ie mga ilang bases ng code), kalaunan maaari kang kahit na magpatakbo ng mga iba't ibang machine ng manggagawa na-optimize para sa bawat uri ng trabaho (bagaman na ilipat ang layo mula sa 'generic manggagawa 'ideya). Laging subukang mag-isip tungkol sa hinaharap kapag pagbuo ng sistema, ang isang maikling kataga ng paningin ay maaaring humantong sa na kataga ng pagkabigo at mas mataas na oras ng pag-unlad.

Job Server

Kami ay pagpunta sa kailangan sa isang lugar upang makontrol ang aming mga trabaho mula sa, ito ay dapat na lamang ang sistema sa iyong grid na may isang nakapirming tagahanap mapagkukunan, na ang isang IP address, pangalan ng host, URL (gamit ang panloob na DNS), atbp Ito ay dahil ang mga manggagawa na kailangan upang malaman kung saan upang tumingin para sa mga trabaho, mga manggagawa na kailangan upang mahanap ang kontrol ng sistema ng trabaho (hindi ang kontrol ng sistema ng trabaho mahanap ang ang mga manggagawa).

Ang server ng trabaho mismo ay hindi talagang magkaroon ng isang komplikadong gawain (sa isang pangunahing sistema sa paano't paano man), na kinakailangan nito upang mai-imbak ang isang listahan ng mga trabaho, kamay out trabaho, makatanggap ng mga resulta, at pagkatapos mag-imbak ang mga ito para sa mamaya pagsasauli. Paano ay tinukoy ang mga bahagi (tulad ng 'kamay ang trabaho) ay maaaring maging napaka-basic. Mamaya sa maaari naming palawakin ang sistema upang isama ang isang pangangasiwa interface upang idagdag, i-edit, tanggalin, isuspinde trabaho ngunit ito ay lampas sa pagsasanay na ito.

May ay walang dahilan sa kahit ano pa man pagkatapos na ang iyong trabaho server ay hindi maaaring maging isang virtual machine na tumatakbo sa loob ng iyong pangunahing processing server ibinigay ito ay hindi maubos ang masyadong maraming mga mapagkukunan mula dito. Gayunpaman ang trabaho server ay kailangan mataas availability, kung ito napupunta sa isang Biyernes gabi na kayo ay pagpunta sa mawalan ng isang buong linggo ng processing, potensyal na costing sa iyo ng isang pares ng mga linggo na halaga ng oras ng pagpoproseso (kapag inihambing sa iyong pangunahing processing server ay nag-iisa) . Baka gusto mong isaalang-alang ang paglalagay ng server ng iyong trabaho sa isang balanseng kapaligiran load para sa mataas na availability.

Basic Setup

Ang pangunahing setup para sa aming mga server ng ​​trabaho ay binubuo ng kung ano ang ako ng pagtawag sa isa sa aking mga malata server (na Li nux, ang m ySql, P HP). Ang code na tumatakbo sa Thea manggagawa ay talagang gumagana out kung ano ang mga trabaho ang maaaring tumakbo sa pamamagitan ng nakikipag-ugnayan sa may trabaho database ng control sistema. Mamaya sa kami ay maaaring lumikha ng isang serbisyo ng web at talagang kamay ang trabaho kaysa sa pagkakaroon ng mga manggagawa na gawin ang mahirap na trabaho na kanilang sarili, ngunit sa ngayon kami ay patuloy na gamit ang Halik prinsipyo (Panatilihing ito Simple, bobo!).

Kaya, ay nagbibigay-daan sa lumikha ng tatlong MySQL talahanayan upang makitungo sa mga trabaho. Ito ay `trabaho`, `jobRecords`, at `jobResults`.

trabaho talahanayan Narito ako gumagamit ng SQL Buddy isang magandang maliit na alternatibo sa phpMyAdmin dahil lang nito mas madaling i-install sa centOS (para sa iba na makita: 10 Mahusay na mga alternatibo sa phpMyAdmin )

Ang table na ito ay binubuo ng 5 simpleng patlang,

  • id: natatanging kilalanin ang trabaho
  • pangalan: Puwede maging isang reference ng client, o anumang bilang ng iba pang mga identifier
  • Katayuan: Kailangan mong malaman kung saan ang trabaho ay sa, hal
    • 0: Hindi makapagsimula
    • 1: Napili up
    • 2: Nakumpleto
  • started_by: Sino ay nagsimula ng paggawa ng trabaho? Ito ay hindi ganap na kinakailangan ngunit ay isang magandang magkaroon. Gusto ko iminumungkahi ang pagsubaybay ng mga manggagawa sa pamamagitan ng kanilang mga IP address sa iyong network
  • started_at: Kapag ang manggagawa simulan ang trabaho? Sa pamamagitan ng pagsubaybay sa mga trabaho na hindi nakumpleto sa loob ng X halaga ng oras na malaman namin na kailangan namin upang kunin ang trabaho sa sandaling muli at simulan ang pagproseso ng isa pang manggagawa. Manggagawa ay maaaring ihinto ang processing / pumunta ng offline para sa anumang bilang ng mga dahilan, kapangyarihan pagkabigo, pag-crash, pagkawala ng network, atbp

Ito ay madali kung paano ang talahanayan na ito ay maaaring pinalawak na may ilang mga karagdagang mga patlang upang pahintulutan para sa mga istatistika ng pagsubaybay, isang haligi ng Tapos na oras upang makita kung gaano katagal ang trabaho kinuha, isang kontra upang makita kung gaano karaming mga manggagawa ang pinili ang trabaho (malinaw naman ang pangangailangan na ito sa posibilidad na 1), priority ng trabaho, ang listahan ay maaaring pumunta sa at sa. Sa mga mas kumplikadong sitwasyon trabaho ay posible upang tukuyin kung gaano karaming memory ang manggagawa ay kailangan ng access sa (at samakatuwid lamang gumamit ng mga angkop na manggagawa), o kahit anong uri ng mga manggagawa ay kinakailangan.

Hinahayaan magdagdag ng ilang mga trabaho sa halimbawa:

Halimbawa trabaho

Muli Ang susunod na talahanayan ay medyo simpleng upang maunawaan, ang mga ito ay ang aming mga talaan sa trabaho. Sila ay naka-link sa pangunahing talahanayan ng trabaho sa pamamagitan ng isang hanay ng `jobs_id`. Ang bumubuo ng talahanayan na ito napaka depende sa mga data na kailangan mo upang magbigay sa iyong mga manggagawa, ay nagbibigay-daan sa isang napaka-simpleng halimbawa na kung saan kami ay may apat na mga haligi:

  • id: ID ng record
  • pangalan: pangalan Tao
  • address: address Tao
  • jobs_id: Ang ID ng trabaho na ang tala na ito ay naka-link sa

Ang ikatlong at huling talahanayan ay binubuo ng isang talahanayan ng mga resulta, ito ay may magkano ang parehong bilang aming mga talaan ng talahanayan, at sa pagdagdag ng ilang mga haligi ay maaaring maging bahagi ng talahanayan ng mga talaang:

  • job_record_id: I-link ang resulta sa trabaho ang talahanayan
  • resulta: Ang mga resulta ng data

... At na ang lahat na kailangan mo para sa trabaho control! (Kahit na sa isang pangunahing antas) Sa aking kaso ako tulis sa ibang mesa na kung saan ang aking data sa proseso ay matatagpuan, ngunit ito ay maaari lamang bilang madaling naging isang file, ang mga parameter upang patakbuhin ang simulation code, mo pangalanan ito.

Pagpili ng isang trabaho

Tulad ng ipinahayag dati, ang manggagawa ay gawin ang aming trabaho sa pamamahala para sa amin para sa ngayon, kaya lahat ng kailangan namin talagang gawin ay mahanap ang isang trabaho na nangangailangan ng processing at makuha ang impormasyon. Paano namin gawin ito? Rin pumili sa aming mga pamantayan sa pagpili ng trabaho at hanapin para sa mga trabaho, sa SQL ko ang mga sumusunod:

  1. Gumawa ng anumang mga trabaho na hindi minarkahan bilang kumpletong ngunit mula sa aming mga manggagawa at i-reset ito (halili ang __ ME__ sa isang identifier, pinakamadaling IP address):
      Update `trabaho` Itakda `status` = 0 SAAN `status` = 1 AT `started_by` = __ ME__; 
  2. Gamit ang aming mga pamantayan sa pagpili ng trabaho, pumili ng isang trabaho at sabihin ang control system na manggagawa na ito ay pagharap dito:
      Update `trabaho` Itakda `status` = 1, `started_by` = __ ME__, `started_at` = NGAYON () SAAN `status` = 0 O
     (`Status` = 1 AT `started_at`> DATE_SUB (NGAYON (), interval X HOUR)) UPANG NG `id` ASC; 

    Sa pamamagitan ng daklot mga trabaho na hindi nagbalik ng mga resulta sa X halaga ng oras namin matiyak na ang lahat ng mga trabaho ay tatakbo sa kaganapan ng isang manggagawa sa pag-crash o pagpunta ng AWOL.

  3. Susunod grab ang mga detalye ng trabaho na sinusundan ng mga ng mga tala kanilang sarili:
      Piliin ang * MULA `trabaho` SAAN `started_by` = __ ME__ LIMIT 1;
     Piliin * mula sa `job_records` SAAN `id` = __ JOBID__; 

Sa pagkumpleto ng trabaho ipasok namin ang aming mga talaan sa resulta at markahan ang mga trabaho ng kumpleto. Tandaan bilang maaaring suspindihin ng mga trabaho / ipagpatuloy sa anumang oras payagan para sa ilang mga katabaan sa iyong script. Maaaring ito ay na ang gawain ng suspends kalahati paraan sa pamamagitan ng pag-update ng kontrol sa sistema ng trabaho, kaya check ang bilang ng mga talaan sa isang trabaho at ang bilang ng mga resulta ng na-save pabalik sa sistema ng kontrol ng trabaho ay maging isang matalino ilipat.

Bilang karagdagan, habang ito ay nagpapakita kung paano trabaho ay maaaring piliin at pinamamahalaan mula sa isang SQL query frame Dapat mo ba talagang sa abstracting ng iyong trabaho control kaya na kung nagpasya kang lumipat sa paggamit ng isang web serbisyo, ng isang file na nakabatay sa sistema, XML , o anumang iba pang Ang bilang ng mga sistema na hindi ito makakaapekto ang code sa itaas nito.

Job Configuration

Ang susunod na aspeto upang isaalang-alang ang sukat at configuration ng trabaho. Sa pamamagitan ng naglalaro sa configuration ng trabaho namin hampasin ng isang mahusay na balanse sa pagitan ng bilis, pagtitiklop ng proseso, at kahusayan. Tumagal ng ilang of mga sitwasyon:

  1. Trabaho tumagal ng 1 araw sa bawat tumakbo: Ito ay nangangahulugan na ang iyong mga manggagawa ay kailangan ng 15 araw upang iproseso ang bawat trabaho (tandaan ang 10% ng kapangyarihan para sa mga 2/3rds ng oras). Ito ay malinaw na hindi isang matalino na pagsasaayos, ang sukat ng iyong trabaho ay paraan masyadong malaki! Tumagal ng hindi bababa sa double ang oras upang makakuha ng trabaho sa isang naproseso dapat ang unang manggagawa pumunta AWOL (oras upang pumili up na ito ay hindi nagbalik ng isang resulta plus reprocessing oras). Sa isang ideal na gusto mong magkaroon ng hindi bababa sa isang buong trabaho na madaling clear sa pamamagitan ng dulo ng bawat mahabang panahon na walang ginagawa, na paraan na panatilihin mo ang trabaho gris sa loob at sa pinakamalala kaso ang trabaho ng isang ay tumagal ng dalawang araw sa proseso dapat ang unang pumunta nawawala.
  2. Trabaho tumagal ng 1 minuto upang tumakbo: Ito ay nangangahulugan na ang iyong mga manggagawa ay tumagal ng halos 15 minuto upang patakbuhin ang bawat trabaho. Habang ito ay maaaring simula tila mainam, makakuha ng karagdagang pagproseso ng trabaho sa panahon ng tanghalian oras, coffee break, pagpupulong, atbp sitwasyong ito ay naglalagay ng pilay sa iba pang mga lugar ng iyong system at introduces kanyang sariling problema. Halimbawa, una ang iyong setup / oras ng pagpoproseso ratio ay pagpunta sa pumunta karapatan down na, kaya nawawala ang sistema ng kahusayan. Ang iyong network ay pagpunta sa patuloy streaming trabaho impormasyon sa iba't ibang mga manggagawa ng mga kawani ng nakakadismaya na dong ang kanilang araw-araw na gawain. Mo rin ay pagpunta sa ilagay ang higit pa pilay sa iyong server sa pagproseso ng trabaho dahil ito ay upang magbigay ng maraming at maraming ng mga maliliit na piraso ng trabaho sa isang regular na batayan. Panghuli, sa sitwasyong ito kung ang iyong server ng trabaho napupunta down na kayo ay pagpunta sa lumikha ng isang malaking log likod ng uncompleted gawain habang mas malaking trabaho ay maaaring ng patuloy pagproseso blissfully nakalimot na ang mga trabaho ng server ay nakakaranas ng mga paghihirap.

Sa katotohanan ay hindi isang mainam na configuration para sa iyong setup ng grid, magkano ay depende sa mga magagamit na mapagkukunan, mga uri ng trabaho, trabaho kinakailangan sa oras ng turnaround, kakayahan ng network, at iba pa. Subalit ang ilang mga alituntunin ay:

  • Trabaho laki kaya na ang bawat manggagawa ay maaaring makakuha ng sa pamamagitan ng hindi bababa sa 3-4 na trabaho sa isang panahon ng 15 oras (ang pinakamahabang malamang na idle na oras ng panahon)
  • Maglaro sa laki ng trabaho upang setup ng oras nagiging medyo hindi gaanong mahalaga kung ihahambing sa ang oras ng pagpoproseso (nadadala sa isip ang sa itaas point).
  • Kung ang isang trabaho na hindi kumpleto sa double ang dami ng oras (maaaring mas mababa) na inaasahan mong ito upang makumpleto ito ay ipinapalagay na nito nawala na AWOL at magsisimulang iproseso ang mga ito sa ibang manggagawa. Nangangahulugan ito na maaaring mayroon ka upang maghintay ng hanggang sa tatlong beses ng normal na haba ng isang trabaho para sa mga ito upang makumpleto (marahil na kung ang kasunod na trabaho nabigo). Baka gusto mong bawasan ang oras na ito, ngunit maging maingat na hindi upang mabawasan ito masyadong maraming bilang maaari mong simulan duplicating ang mga gawain sa pagproseso sa isang regular na batayan.
  • Trabaho ay dapat na hiwalay labas kinakailangan hangga't maaari. Ang server ng trabaho, halimbawa, ay dapat lamang makipag-ugnayan sa simula at dulo ng bawat trabaho.
  • Huwag mababad ang iyong network, ito ay may dalawang negatibong mga epekto, ang iyong araw kawani ay mahanap gamit ang network nakakadismaya at mga problema ay maaaring naranasan sa koneksyon tiyempo ng isang problema na lamang makakuha ng mas masahol bilang mo masukat ang iyong grid.
  • Mga matiyak trabaho ay maaaring tumakbo sa iyong mga manggagawa. Kung ang mga trabaho ay maging masyadong memory intensive o disk space mga intensive trabaho ay magsisimula aborting at ang tanging bagay na mapapansin mo ay isang drop sa bilang ng mga trabaho na-proseso sa hindi tunay na dahilan kung bakit.

Pagsusumite ng mga Resulta ng ng trabaho

Kapag ng pagsusumite ang mga resulta ng isang trabaho ay mahalaga upang suriin na nagreresulta hindi naisumite na ng ibang manggagawa, lalo na kung ang kasalukuyang manggagawa ay natutulog para sa ilang oras.

Kapag ang mga resulta ay isinumite matiyak na ang bilang ng mga resulta tumutugma ang bilang ng mga talaan sa loob ng trabaho.

Tulad ng isinasaad sa dati, at hindi maaaring maging higit sa emphasized, bumuo ng kasalanan pagpapaubaya sa pagkuha ng trabaho at pagsusumite ng mga resulta. Ang manggagawa ay maaaring (at malamang ay) pumunta sa suspindihin mode sa ang pinaka-maginhawa ng beses na at ito ay nangangailangan na catered para sa. Gayundin muli ng abstracting malayo ang iyong mga resulta ng pagsusumite ay makakatulong sa magsilbi sa mga hinaharap na pagbabago sa iyong system trabaho kontrol lubhang mas madaling makitungo sa.

Buod

Sa ito section namin tumingin sa kung ano ang isang server ng kontrol ng trabaho ay kailangang gawin at kung paano upang makakuha ng isang pangunahing sistema-set up. Tinalakay namin kung paano makuha ang isang trabaho mula sa control ng system at kung paano pinakamahusay na upang i-configure ang mga trabaho upang makuha ang karamihan sa aming ng iyong system sa grid ng opisina. Upang tapusin, isang talata o dalawang sa pagsusumite ng mga resulta pabalik sa server ng kontrol ng trabaho ay iniharap.

  • Ang kontrol ng server ng trabaho ay namamahala ng mga trabaho at tinitiyak na ang lahat ng mga yunit ng trabaho ay nakumpleto
  • Sa pamamagitan ng ng abstracting iyong trabaho piliin / resulta ng pagsusumite maaari naming baguhin ang teknolohiya ng control sa server walang magkano ang problema
  • Isaayos ang iyong trabaho upang matiyak na sila ay tumakbo nang mabilis at mahusay na walang paglalagay ng masyadong maraming presyon sa iyong network infrastructure, at walang ng duplicating gawain ng pagproseso sa isang regular na batayan.
  • Tiyakin na ang binuo mo kasalanan tolerance at ang error checking sa iyong mga gawain, ang mga manggagawa ay maaaring suspindihin at ipagpatuloy at ang pinaka-maginhawa ng beses. Tandaan upang suriin kung ang mga resulta na nai-isinumite ng ibang manggagawa.

Susunod na

Sa bahagi 3, kami ay lumikha ng aming mga virtual machine sa pagpoproseso at set up ng aming mga machine bintana upang maging idle-time na mga manggagawa.

Zend Framework: Fundamentals - Repasuhin

, Sabado 28th Nobyembre 2009 22:42

Aking tagapag-empleyo ay kamakailan-lamang na binayaran para sa isang grupo ng sa amin sa mga developer upang kumuha ng Zend Framework: Fundamentals kurso, narito Kukunin ko magbuod ang aking mga saloobin at mga opinyon sa mga kurso para sa mga iba. Para sa mga naghahanap upang makatipid ng oras, narito ang aking buod:

Para sa mga developer na hindi nagkaroon ng oras upang tumingin sa ang Zend Framework na ito kurso (Zend Framework: Fundamentals) ay nag-aalok ng isang mahusay na pangkalahatang larawan ng balangkas nagpapakilala sa iyo sa ang susi lugar at nagbibigay ng sapat na impormasyon upang magpatuloy. Para sa mga na ginugol oras na naghahanap sa balangkas at sinundan ng isa o dalawang mga tutorial kurso na ito ay hindi nag-aalok ng magkano lampas.

Likuran

Ako ay isang PHP developer para sa mga paligid ng 5-6 taon, at nagsimula nagtatrabaho sa ang Zend Framework sa isang bahagi ng batayan sa nakaraang 6 na buwan. Ko na binuo at / o isang developer sa isang pares ng mga maliit na Zend Framework MVC sites. kukunin ko na maging matapat, hindi ko ay may isang malaking halaga ng pagkalantad sa iba pang mga frameworks mula sa isang pagkukudigo punto ng view ng ngunit ginugol ng ilang oras ng pananaliksik ang mga website proyekto at evaluate them. Ang framework at ang komunidad na nakapaligid Zend Framework ito ay lubos nakapupukaw at may mukhang malaking posibilidad sa kung saan ang pagpunta.

Tungkol sa Course

Ang mga kurso ay inihatid sa 9 dalawang session ang oras webex (na may isang 10-minuto na break na sa gitna). Ang oras na ginugol ng pagpunta sa pamamagitan ng isang hanay ng mga slide na ibinigay ng Zend sa talakayan sa anumang oras. Maaari mong gamitin ang isang mikropono upang makipag-usap sa magtuturo, ngunit upang maging matapat na hindi ko nakita sinuman gamitin ang anumang bagay na higit pa kaysa sa chat window. Sa karagdagan isang VMWare Ubuntu machine ay ibinigay na may halimbawa ng code at mga proyekto-set up ng isang bersyon pagsubok ng Zend Studio. Ang mga kurso lider talks sa mga dadalo alinman sa isang pinagsamang VoIP solusyon, o mo i-dial sa gamit ang isa sa maraming mga pandaigdigang dial sa mga numero.

Habang ang mga kurso materyal ay binubuo ng isang maikling pangkalahatang-ideya ng Balangkas at ang MVC pattern bago heading sa isang application sample ng guestbook. Talakayan ang ipinapakita bootstrapping, Zend_Application, Table ng DB, Database access, Forms, Filtering, ACL, Pagpapatunay, atbp, atbp. Talaga sumasaklaw sa lahat ng mga paksa na gusto mo ay nangangailangan upang makakuha ng isang pangunahing site up ng isang tumatakbo sa lahat ng oras na nagbibigay sa iyo ng mga kasangkapan upang pumunta at makakuha ng mas advanced sa framework (bagaman ito ay halaga sa 'Tingnan magkano ang website ng oras).

Ang oras ay ibinigay sa code ng ilang mga halimbawa, at upang bumuo ng 'guestbook' at application simpleng 'wiki'. Personal na nadama ko na ang pagbibigay ng code o sa bawat app at pagkatapos ay humihingi sa amin upang bumuo ng kung ano ay mahalagang isang kopya sa tabi ay hindi talagang magbigay ng isang mahusay na karanasan sa pag-aaral. Gusto ko ginustong upang bumuo ng isang application katulad na, ngunit hindi magkapareho. sa halimbawa ng application sa mga benepisyo ng pagkakaroon ng isang gabay upang sumangguni sa. Bilang kahalili pagbuo ng mga application mula sa simula sa demostrador ay ng posibleng humantong sa mas maraming mga katanungan tungkol sa kung bakit at kung paano, kaya nagbibigay ng isang mas mahusay na-unawa ng ang balangkas, matapos ang lahat ng maaari kang tumingin hanggang mga pagtutukoy matapos ang kurso.

Ang huling panayam na binubuo ng nagtatrabaho sa wiki application sa tulong / gabay mula sa magtuturo. Pagkatapos ng kurso ng feedback ay kinuha, ito ay emphasized maraming beses sa pamamagitan ng mga kurso na ang Zend tumatagal puna sineseryoso, sa katunayan tila ang aming bersyon ng kurso ay lubos na bagong. Some of the other developers in the company will be taking the course soon so it will be interesting to see if this has happened.

The course style was informal, allowed for feedback and collaboration between attendees and the instructor. The course leader was friendly, approachable (email addresses were shared for questions), and whilst his presentation from the slides was a bit shaky seemed fully competent in the framework. Siya ay malinaw na isang tao na ginamit ang balangkas sa isang regular na batayan sa halip na isang tao na itinuro upang magturo sa mga kurso, nagustuhan ko ang karanasan sa 'totoong mundo' sa na paggalang.

Overall Feeling

Sa ilang mga paraan na natagpuan ko ang kurso ng isang basura ng oras, sa iba ito ay lubhang madaling gamitin. Hopefully I'll get my reasons across clearly, and maybe provide some food for thought or useful feedback (knowing me this is unlikely!).

For myself this course was aimed at too low a level. Having gone through the quickstart guide, read Rob Allen's Zend Framework in Action, and worked with the framework a little I didn't really get anything too much. I would of liked the course to pick up from the end of the quickstart and develop additional skills.

Na sinabi, ang pamagat ng kurso ang malinaw na estado "Zend Framework: Fundamentals" at sa na aspeto kurso achieves kung ano ang nagtatakda kung gawin. Other members of the development team that haven't spent the time looking into the framework finished each session with enthusiasm and asked questions which was really nice to see.

All was not lost, it was good to spend time confirming the basic details of the framework and get to ask a couple of questions in areas where I wasn't 100%. It was also time that I got to sit down each day and think about coding using the framework and future projects, something I wouldn't of been able to do otherwise (can you imagine your company agreeing to that? :) ). Last but not least you also get a nice certificate from Zend to say that you attended the course (albeit by email).

Zend Framework Certification

This was one question that kept coming to mind during the course, would it prepare me for the certification? The quick, easy is a resounding No . The course instructor was quite clear on that with the additional advice that for the certification you should really be using the framework on a day to day basis and feel very comfortable and confident in its usage and methodologies.

Buod

Given everything I've written above, I'll summarise everything in two easy bullet points:

  • New to Zend Framework: This course does exactly what you'd expect, it gives you a nice introduction to the framework and a good grounding on the basics from which you can build. The course seems to generate interest and enthusiasm for the framework amongst developers.
  • Ginamit ang Zend Framework: Habang ito ay magandang sa baybayin up ang ilan sa mga napaka pangunahing kaalaman nadama ko ang oras, pagsisikap, at mga pondo upang gawin ang mga kurso ay maaaring ng mas mahusay na ginugol sa ibang dako. It will be nice to see Zend create a new higher level course to take developers to the next level – at least to the standard of certification and beyond. For that I would sign up immediately.

Pangalan ng United Kingdom Directory at Facebook Application

Sa pamamagitan ng , Biyernes-10 Abril 2009 09:33 am

Isa ng ang saya mga bagay na ako ay kasangkot sa habang nagtatrabaho para sa Tracesmart ay ang mga pangalan ng direktoryo . Talaga kinuha namin ang aming malaking database ng impormasyon at hugot ng isang malaking tumpok ng mga istatistika tungkol sa mga iba't-ibang mga pangalan.

Ang proseso ay ang lahat ng isang malaking SEO pagsisikap upang gumuhit ng mas maraming trapiko sa site, ngunit ito rin ay nagbibigay ng ilang mga kagiliw-giliw na impormasyon at mga istatistika ng pangalan.

Narito ang isang halimbawa para sa aking pangalan Lloyd Watkin , o ipagpalagay ko mas tama Steven Watkin . Kumuha nang isang minuto upang tumingin up ang iyong pangalan sa site ng Tracesmart, ay maaaring maging kawili-wiling ;)

Din namin nakuha mga pangalan ng data istatistika sa ang pangalan ng direktoryo pahina na nagsasabi sa iyo kung ano ang mga pangalan ay hinanap at kung paano kamakailan. Nito medyo kagiliw-giliw na upang makita ng mga pangalan ng sikat na tao lumipad ang stats kapag lumilitaw ang mga ito sa mga balita. Ang isang kamakailan-lamang na halimbawa ay ang Liam Neeson na ang asawa ay namatay mula sa isang pang-iski aksidente kamakailan, bagaman malinaw na tao ay hindi masyadong tama ang spelling (samakatuwid ang malaking bilang ng mga hit sa pangalan na ito) - Liam Nilson .

Facebook Application

Kapag ang mga pangalan ng direktoryo ay nilikha kami ng tungkol sa paglikha ng isang Facebook application na kung saan namin duely pinangalanang ' Aking Pangalan '. Ang Facebook application ay isang extension ng direktoryo ng mga pangalan at nagbibigay ng ilang karagdagang mga istatistika. Upang idagdag ang mga pangalan ng direktoryo sa iyong account sa Facebook mangyaring bisitahin ang:

http://apps.facebook.com/my-name/













Panorama Theme by Themocracy

4 mga bisita sa online ngayon
3 mga bisita, 1 bot, 0 miyembro
Max mga bisita ngayon: 11 sa 01:15 am UTC
Sa buwang ito: 40 sa 23-05-2012 03:33 am UTC
Ito taon: 69 sa 27-02-2012 09:56 am UTC
All time: 130 at 28-03-2011 10:40 pm UTC