Паведамленні з тэгамі: Дадатак

"Увайсці на Twitter» з дапамогай Zend Framework

Па , чацвер 17 Сакавіка 2011 г. 01:07 am

Нягледзячы на ўсю нянавісць шчабятаць на дадзены момант, я вырашыў стварыць новы твітэр -прыкладанні. Будучы, хто кіруе некалькімі рахункамі (як асабістыя, так і для маёй дабрачыннай дзейнасці), я, якія маюць патрэбу ў інструмент на некаторы час, што я проста абыйсці ў пісьмовай форме (больш за тое, што ў найбліжэйшай будучыні ...).

Я чытаў на Zend_Oauth_Consumer і як яна можа быць выкарыстана для атрымання дазволу для працы з Twitter выкарыстаннем OAuth . Усё добра, у мяне ёсць ключ доступу, і я магу весела паведамленні ад ад імя карыстача. Там ёсць шмат рэсурсаў, там, каб зрабіць гэта так, я не буду адтуліну людзей.

Наступным крокам было, каб дазволіць людзям вярнуцца на вэб-сайце, ўвайдзіце ў сістэму і змяніць іх кошт. Тут я дасягнуў невялікая праблема. Выкарыстанне прыкладаў кода на вэб-сайтах азначае, што я б шчэбет прасіць у мяне дазволу доступу зноў для кожнага ўваходу ў сістэму, не вельмі добра. Сканіраванне праз рамкі я не мог бачыць нічога, што дазволіла б мне проста запытаць аўтэнтыфікацыю. Гэта не значыць, яе няма, але, падобна, не будзе механізму праверкі сапраўднасці, якія могуць быць выкліканыя не ведаючы маркер доступу ўжо.

Альтэрнатывы для рэалізацыі сайта на аснове часопіса або неяк захоўваць маркер доступу карыстальніка на баку кліента (зашыфраваны вядома). Ні адзін з гэтых здавалася добрай / падыходнае рашэнне.

Працягнуць чытанне "Увайсці на Twitter" з выкарыстаннем Zend Framework »»

Голая Zend_Layout і Zend_View

Па , у аўторак 10 жніўня 2010 11:47 вечара

У гэтым артыкуле я гляджу на выкарыстанні Zend_Layout і Zend_View разам з простымі фронт-кантролера, каб паказаць, як можна пачаць падзел бізнэс-логікі і прадстаўлення ў вашым дадатку. Увесь код даступны на GitHub:
Голая Zend_Layout і Zend_View на GitHub .

Далей "Голая Zend_Layout і Zend_View 'чытанне»

PHP Design Patterns - назіральнік шаблон

Па , аўторак 29 сьнежня 2009 10:02 вечара

Я чытаў Head First Design Patterns нядаўна і вырашылі напісаць некалькі мадэляў, як PHP, прыклады для майго ўласнага даброты. Першае, што я вырашыў код на гэта назіральнік шаблон . Фармальнае азначэнне пра шаблон назіральніка з'яўляецца:

Назіральнік шаблоне (падмноства асінхронных публікацыі / падпіскі мадэль ) з'яўляецца праграмным забеспячэннем шаблон дызайну , у якім аб'ект , званы прадмет, захоўвае спіс сваіх утрыманцаў, называецца назіральнікамі, і паведамляе іх аўтаматычна любых змяненняў стану, як правіла, па тэлефоне адзін з іх метадаў . Ён у асноўным выкарыстоўваецца для рэалізацыі размеркаваных сістэм апрацоўкі падзей.

Як сістэмы становяцца ўсё больш слаба звязаныя пераканаўшыся, што, калі падзея адбываецца ва ўсіх сістэмах, якія патрабуюць веды аб гэтых абнаўленнях паведамляецца. Напрыклад, у блогу, пасля захавання паста мы, магчыма, спатрэбіцца абнаўленне пошукавай сістэмы (напрыклад Lucene), абнавіць нашу карту сайта, тэгі, па электроннай пошце падпіскі карыстальнікаў, і г.д. назіральніка карціна дазваляе распрацоўнікам дадаваць слухачоў, не рэдагуючы іх назіранага аб'екта . Уводзячы назіральнікаў (напрыклад, пошукавай сістэмы абнаўлення назіральніка, генератар карты сайта і г.д.) у прадмет (напрыклад, паведамленне ў блогу рэдагавання сістэмы) мы можам дазволіць, каб выканаць усе неабходныя абнаўлення без якіх-небудзь змяненняў.

Працягнуць чытанне "PHP Design Patterns - Observer Pattern '»

Упраўленне Grid Computing з дапамогай Virtual асяроддзя - Частка 3

Па , у пятніцу 4 снежні 2009 года 11:37 вечара

Увядзенне

Я працую ў кампаніі, дзе мы запускаем шмат працоўных месцаў, пакетную апрацоўку мільёнаў запісаў дадзеных кожны дзень, і я думаў у апошні час пра ўсіх машынах, якія сядзяць кожны дзень нічога не рабіць на працягу некалькіх гадзін. Не было б добра, калі мы маглі б выкарыстоўваць гэтыя машыны для ўмацавання вылічальнай магутнасці нашых сістэм? У гэтай серыі артыкулаў я буду глядзець на патэнцыйныя выгоды ад выкарыстання офіса сеткі выкарыстаннем виртуализованных асяроддзях.

У частцы 2 мы разгледзелі працу сервер будзе працаваць, як і працоўныя месцы павінны быць настроены для дасягнення найбольшай колькасці апрацоўкі ў той час як забеспячэнне кожнага задання апрацоўваюцца ў абавязковым парадку.

Налада працоўнага - ці LIMP сервер

Наступным крокам у гэтым працэсе заключаецца ў наладзе віртуальных рабочых. Для гэтага я буду выкарыстоўваць ўстаноўкі CentOS выкарыстаннем VirtualBox. Я збіраюся ўсталяваць MySQL і PHP на серверы, таксама вядомы як LIMP (Li ММК, м ySQL, P л.з.) Сервера (я, магчыма, зрабілі гэтае імя ўверх).

  • Усталёўка VirtualBox на кампутары Windows (варта спасылка)
  • Запампаваць і ўсталяваць CentOS (бягучая версія 5.3) ў межах ствараных віртуальных машын

Там няма сэнсу мне будзе гэта там, напэўна, 1000-х вялікая падручнікаў там (ну добра, вось яшчэ адзін: стварэнне і Managing CentOS віртуальнай машыне пад VirtualBox ). Важна адзначыць, я думаю, што я назваў сваю віртуальную машыну GridMachine.

Што тычыцца майго выбару віртуалізацыі кліентаў і аперацыйнай сістэмай туды не такое ўжо вялікае важкіх прычын для кожнага варыянту. VirtualBox з'яўляецца тое, што я выкарыстоўваю на маім хатнім кампутары і пры падтрымцы трох асноўных аперацыйных сістэм. Я выбраў CentOS як яго добра стабільная АС, і я выкарыстоўваю яго на сваім уласным вэб-серверы. Я вельмі веру ў правільныя інструменты для працы (хоць я падаю заяву "выкарыстоўваць самы хуткі і просты для вас менталітэт тут), таму, калі аперацыйная сістэма X працуе ваш код хутчэй і больш эфектыўна выкарыстоўваць яго :)

Важна пераканацца, што ваша VM выкарыстоўвае DHCP, у адваротным выпадку для кожнай новай віртуальнай машыны павінны быць настроены асобна, тое, што мы не want.By з дапамогай DHCP нам не патрэбныя для налады сеткавых параметраў індывідуальна для працоўных машын, DHCP ўручыць з IP-адрасоў для вас. Таму вы можаце скапіяваць вашыя віртуальныя машыны па кабінеце, не клапоцячыся пра ўсталёўку кожнага ўверх (гэта паляпшае маштабаванасць і зніжае працаўнік адміністрацыі).

Працэс, які вы павінны імкнуцца да дасягнення б атрымаць новыя фізічныя машыны, ўстаноўкі VirtualBox, а затым у значнай ступені разгарнуць віртуальны вобраз, не больш за тое. Гэта можа быць мудрым, каб наладзіць ўсе вашы працаўнікі ў іншай падсеткі, каб можна было па крайняй меры, даведацца, колькі машын працуе. Вам таксама неабходна наладзіць машыны на доўгатэрміновую арэнду або неабмежаваную арэнды DHCP.

Як запусціць заданні на працоўны

Гэта цікавае напрамак, і ёсць некалькі абгрунтаваных метадаў для апрацоўкі заданняў на работніка. Тут я проста абмеркаваць два найбольш відавочных:

  • Пастаянна працуе сцэнар: сцэнар, няхай гэта будзе скрыпт або скрыпт PHP выконваецца адзін раз на работніка і працуе як частка бясконцага цыклу. Я гэты метад дыскантаваных як адзін крах сцэнарыя і, магчыма, вашы працаўнікі перастануць працаваць без нейкага ўмяшання.
  • Cron на аснове выканання скрыпту: кожныя х хвілін крон дэман стартуе званок на ваш сцэнар, каб атрымаць рэчы, якія ідуць. Без якога-небудзь кантролю гэта можа прывесці да шмат шмат копій ход сцэнара работніка.

Маё рашэнне было пайсці з хранічны які стартуе скрыпт кожныя 10 minutes. Мой скрыпт выконвае наступныя задачы:

  1. Атрымаць спіс працэсаў і grep, гэта для "PHP". Калі не знойдзены, то працягнуць.
  2. Звернецеся да працы кода, у маім выпадку гэта было б нешта PHP заснаваны
  3. Работнік скрыпт завяршае свой бег
  4. Гатовыя ісці зноў на наступны адпаведны выклік

Маё баш скрыпт выглядае прыкладна так:

  #! / Бэн / ш
 PS калі сякера | Grep-V GREP | GREP PHP> / Dev / нуль
 затым
     рэха "Праца ў цяперашні час апрацоўкі, выхад"
 яшчэ
     echo "Праца не працуе, пачніце прама цяпер"
     PHP yourJobProcessingScript.php
 Fi 

Заўвага: рэха амаль цалкам бессэнсоўным, але можа дапамагчы наступны чалавек, які прыходзіць, каб паспрабаваць змяніць іх.

На гэтым мы завяршаем налады працоўнага віртуальнай машыны, хутка, проста і лёгка капіяваць у кожную новую частку абсталявання, якое атрымана. "Розум" у падвеснай сістэме на самай справе не візуалізуецца АС, яе ўсё рабіць з кодам, створаны, каб працэс працы, працы канфігурацыі, а ў тым, каб заданне выконваецца ў выпадку неабходнасці (напрыклад, калі гаспадар знаходзіцца ў рэжыме чакання ).

Налада Windows, для ініцыялізацыі працоўных

Першай задачай з'яўляецца выпрацоўка каманды, неабходныя для запуску віртуальнай машыны з каманднага радка Windows. Калі вы ўсталявалі VirtualBox ў тэчку па змаўчанні, і вы назвалі ваш працоўны GridMachine то каманда патрабуе, каб загрузіць ваш работнік:

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

Аднак, каб запусціць сцэнар у "абезгалоўлены" дзяржавы мы павінны выкарыстаць:

  "C: \ Program Files \ Sun \ VirtualBox \ VBoxHeadless.exe» startvm GridMachine - VRDP = выкл 

Гэта прывядзе да запуску віртуальнай машыны без графічнага інтэрфейсу і дазваляе яму захоўваць стан вытанчана. Другі аргумент выключаецца RDP, так што не супярэчыць вокны RDP, ці даць вам паведамленне аб тым, слухае порт 3389. Імя віртуальнай машыны з улікам рэгістра!

Далей, нам трэба ўсталяваць акна да стартуе наш работнік В.М. раз машына была просты. Для гэтага (на Windows XP) вам неабходна перайсці Пуск -> Усе праграмы -> Стандартныя -> Службовыя -> Прызначаныя заданні, як паказана ніжэй:

запланаваных задач

Затым націсніце на "Дадаць заданне" варта прагледзець дадаць карыстацкія праграмы. Перайдзіце да VBoxManage сцэнар і націсніце кнопку ОК. Расклад вашай задачай для любога з варыянтаў (мы зменім гэта ў хвіліну) і працягнуць. Пасля пропуску наступным экране вокны будуць прасіць вас, хто вы хочаце запусціць гэтую задачу, я прапаную альбо "Адміністратар" ці стварэнне новага прывілеяванага карыстальніка. Памятаеце, што мы не хочам умешвацца ў стандартнай ўліковага запісу супрацоўнікаў на машыне ў любы момант. Націсніце кнопку Далей і праверце шоў дадатковыя опцыі для гэтай задачы.

Да канца выканання тэкставага дадамо радок 'startvm GridMachine і забеспячэння, якія працуюць толькі тады, калі ўвайшлі ў сістэму застаецца дадзеную опцыю. Наведайце наступны графік задачы і змяніць графік апусціцца да опцыю "ў рэжыме чакання, выбраць колькасць часу, вы хочаце машыну сядзець склаўшы рукі, перш чым перайсці да наступнай закладцы.

Нарэшце прыбраць галачку опцыі у якім гаворыцца, спыніць задачу, калі яна ўжо працуе пэўную колькасць часу, але не адзначце опцыю, каб спыніць задачу, калі машына не прастойвае.

расклад

Вось тады для ўстаноўкі вокнаў гаспадар!

Рэзюмэ

У гэтай частцы мы стварылі віртуальную машыну для працы ў якасці работніка, а таксама тое, як мы называем, і выконваць нашы сцэнары апрацоўкі заданняў (для сябе сцэнар PHP). Тут мы разгледзім, як наладзіць нашы копіі вокны для запуску віртуальнай машыны ў абезгалоўлены рэжым, калі кампутар становіцца свабоднай, і захаваць свой стан, калі карыстач аднаўляе выкарыстанне машыны. Спадзяюся, у гэты момант вы бачыце, як проста стварыць такую ​​сістэму і свярбяць, каб атрымаць некаторыя эксперыменты збіраецеся самі!

Наступны раз

У частцы 4 мы разгледзім, як выкарыстоўваць інструменты, каб пераканацца, што вы выкарыстоўваеце апошнюю версію кода і крыніцы дадзеных, так што атрыманыя вынікі з'яўляюцца заўсёды сучаснымі з апошнімі бізнес-інфармацыі і логіку.

Упраўленне Grid Computing з дапамогай Virtual асяроддзя - Частка 2

Па , у пятніцу 4 снежні 2009 года 11:23 вечара

Увядзенне

Я працую ў кампаніі, дзе мы запускаем шмат працоўных месцаў, пакетную апрацоўку мільёнаў запісаў дадзеных кожны дзень, і я думаў у апошні час пра ўсіх машынах, якія сядзяць кожны дзень нічога не рабіць на працягу некалькіх гадзін. Не было б добра, калі мы маглі б выкарыстоўваць гэтыя машыны для ўмацавання вылічальнай магутнасці нашых сістэм? У гэтай серыі артыкулаў я буду глядзець на патэнцыйныя выгоды ад выкарыстання офіса сеткі выкарыстаннем виртуализованных асяроддзях.

У частцы 1 я даў агляд сістэмы і тэхналогіі, я буду выкарыстоўваць, а таксама абмеркавалі некаторыя з магчымых прычын, чаму вы хочаце стварыць офіс сеткі.

Кіраванне заданнямі

Калі вы збіраецеся быць запушчана праца, то вы будзеце мець патрэбу ў нейкай меры кіраваць імі. Ваша задача сістэмы кіравання (на працу сервера) павінен быць вельмі добра прадумана яшчэ да спробы запуску офіса сеткі. Такім чынам, па-першае, якія задачы для сістэмы кіравання заданнямі:

  • Раздайце працу па просьбе працоўных
  • Скажыце рабочым, які тып запуску заданняў
  • Трэк працоўных месцаў
  • Пераканайцеся, што заданні выконваюцца толькі адзін раз
  • Забяспечыць працу дадзеных работнікаў, або па крайняй меры, сказаць ім, дзе яго атрымаць

Акрамя таго, сістэма павінна быць пашыраецца, рашэнне, якое працуе цяпер у адным выпадку можа быць падоўжаны да запуску некалькіх відаў работ, як бізнес бачыць сябе ў сетцы рашэнне. Напрыклад, праца можа атрымаць прыярытэты, больш чым аднаго тыпу задання можа існаваць (гэта значыць некалькі баз кода), у рэшце рэшт вы нават можаце запускаць некалькі розных машын работніка, якія аптымізаваныя для кожнага віду работы (хоць гэта ніяк адысці ад "агульнага работніка "Ідэя). Заўсёды стараюся думаць пра будучыню, пры распрацоўцы сістэмы, кароткае бачанне тэрміна можа прывесці да доўгатэрміновай фрустрацыі і павелічэнне часу распрацоўкі.

Праца сервера

Мы збіраемся дзесьці трэба кантраляваць нашу працу з, гэта павінна быць адзіная сістэма ў вашай сеткі, якая мае фіксаваны лакатар рэсурсу, няхай гэта будзе IP-адрас, імя хаста, адрас (з выкарыстаннем ўнутранага DNS) і г.д. Гэта адбываецца таму, што працоўныя павінны ведаць, дзе шукаць працу, работнікам неабходна знайсці сістэму кіравання заданнямі (не сістэма кіравання заданнямі знайсці работнікаў).

Праца самога сервера на самой справе не з'яўляецца складанай задачай (у базавай сістэме так ці інакш), ён павінен захоўваць спіс заданняў, раздаюць працу, атрымаць вынікі, а затым захоўваць іх для наступнага выкарыстання. Як гэтыя часткі (напрыклад, "раздаваць працоўныя месцы) вызначаюцца можа быць вельмі просты. У далейшым мы можам пашырыць сістэмы ўключаюць адміністрацыйны інтэрфейс для дадання, рэдагавання, выдалення, прыпыніць працу, але гэта выходзіць за рамкі гэтай працы.

Існуе ніякіх падстаў, тое, што ваша праца сервера не можа быць віртуальная машына працуе ў вашай асноўнай сервер апрацоўкі ўмове, што ён не злівае ваду занадта шмат рэсурсаў з яго. Праца сервера аднак гэта патрабуецца высокая даступнасць, калі яна ідзе ўніз ў пятніцу ўвечары вы будзеце губляць усе выходныя апрацоўкі, патэнцыйна варта Вам пару тыдняў варта часу апрацоўкі (у параўнанні з вашай асноўнай сервер апрацоўкі ў адзіночку) . Вы можаце разгледзець пытанне аб стварэнні працу сервера з балансавання нагрузкі навакольнага асяроддзя для забеспячэння высокай даступнасці.

Асноўныя налады

Асноўныя налады для нашай працы сервера будзе складацца з таго, што я тэлефаную аднаму з маіх LIMP сервераў (гэта значыць Li ММК, м ySql, P л.з.). Код працуе на працоўных Теи сапраўды будзе працаваць, якія працы ён можа працаваць, узаемадзейнічаючы з працай баз дадзеных сістэмы кіравання. У далейшым мы маглі б стварыць вэб-сэрвіс і фактычна раздаваць працоўныя месцы замест таго, рабочыя робяць цяжкую працу самі, але цяпер мы будзем працягваць выкарыстоўваць прынцып KISS, (Keep It Simple, Stupid!).

Такім чынам, дазваляе стварыць 3 MySQL табліц для вырашэння працоўных месцаў. Гэта будуць працоўныя месцы ``, `jobRecords` і `jobResults`.

працоўныя месцы табліцы Тут я выкарыстоўваю SQL Buddy вялікі невялікі альтэрнатыва PhpMyAdmin толькі таму, што яе лягчэй ўсталяваць на CentOS (для іншых гл.: 10 лепшых альтэрнатыў для PhpMyAdmin )

Гэтая табліца складаецца з 5 простых палях,

  • ID: Унікальна ідэнтыфікаваць працу
  • Назва: Можа быць нумар кліента, або любую колькасць іншых ідэнтыфікатараў
  • Статус: Вы павінны ведаць, дзе праца на, напрыклад,
    • 0: Не пачаўся
    • 1: Падабраў
    • 2: Завершаны
  • started_by: Хто пачаў рабіць гэтую працу? Гэта не зусім абавязкова, але гэта добра, калі ёсць. Я прапаную адсочвання рабочых па іх IP-адрас у сеткі
  • started_at: Калі працаўнік пачаць працу? Адсочваючы вакансіі, якія не завершаны на працягу пэўную колькасць раз, калі мы ведаем, што трэба падабраць працу яшчэ раз і пачаць апрацоўку іншым работнікам. Рабочыя маглі спыніць апрацоўку / пераходу ў аўтаномны рэжым для любога ліку прычын збою харчавання, аварыя, страта сеткі і г.д.

Лёгка, як гэтая табліца можа быць пашырана за кошт некалькіх дадатковых палёў, каб забяспечыць статыстыку сачэння, калонка аздабленне час, каб убачыць, колькі працы ўзяў, лічыльнік, каб убачыць, колькі працоўных ўзяў працу (відавочна, гэта павінна, як правіла, 1), прыярытэт заданні, спіс можна працягваць і працягваць. У больш складаных сцэнараў працы можна было б вызначыць, колькі памяці работнік будзе мець доступ да (і, такім чынам, выкарыстоўваць адпаведныя рабочыя), або нават, які тып работніка не спатрэбіцца.

Давайце дадамо некалькі працоўных месцаў прыклад:

Прыклад працы

У наступнай табліцы зноў вельмі просты для разумення, гэта нашы запісы працы. Яны звязаны з асноўнай табліцай працоўных месцаў калонка `jobs_id`. Зрабіць з гэтай табліцы шмат у чым залежыць ад дадзеных, якія неабходна падаць для вашых работнікаў, дазваляе зрабіць вельмі просты прыклад, калі ў нас ёсць чатыры калонкі:

  • ID: ідэнтыфікатар запісу
  • Назва: імя чалавека
  • адрас: адрас Асобы
  • jobs_id: ідэнтыфікатар заданні, што гэты запіс звязана з

Трэцяя і апошняя табліца складаецца з табліцы вынікаў, ён мае такі ж складаюць да нашай табліцы запісаў, а таксама з даданнем некаторых слупкоў можа быць часткай табліцы запісаў:

  • job_record_id: Спасылка вынік працы табліцы
  • Вынік: У выніку дадзеных

... І гэта ўсё, што вам трэба для кіравання працай! (Хоць на самай базавым узроўні) У маім выпадку я звярнуў увагу на іншы стол, дзе мае дадзеныя, каб працэс быў размешчаны, але гэта можа так жа лёгка было файла, параметры для запуску праграмнага кода, што заўгодна.

Выбар працы

Як адзначалася раней, працоўныя будуць рабіць сваю працу кіраванне для нас цяпер, так што ўсё, што мы сапраўды павінны зрабіць, гэта знайсці працу, якая павінна апрацоўкі і атрымання інфармацыі. Як бы мы гэта зрабіць? Ну забраць нашы крытэрыі выбару працы і шукаць працу ў SQL я зрабіў наступнае:

  1. Вазьміце любую працу, не пазначаныя як завершаныя, але ад нашых работнікаў і скінуць іх (заменіце __ ME__ з ідэнтыфікатарам, просты будзе IP-адрас):
      UPDATE `працы` SET `статус` = 0 WHERE `статус` = 1 AND `started_by` = __ ME__; 
  2. Выкарыстоўваючы нашы крытэрыі выбару працы, абраць працу і сказаць сістэме кіравання, што гэты работнік мае справу з ім:
      UPDATE `працы` SET `статус` = 1, `started_by` = __ ME__ `started_at` = NOW () WHERE `статус` = 0 або
     (`Статус` = 1 AND `started_at`> DATE_SUB (NOW (), INTERVAL X ЧАС)) ORDER BY `ID` ASC; 

    Па захоп рабочых месцаў, якія не вярнуліся вынікі ў X колькасць часу мы гарантуем, што ўсе работы выконваюцца ў выпадку збою або працаўнік ідзе ў самаволку.

  3. Далей вазьміце працу дэталі ідуць самі запісу:
      SELECT * FROM `працы` WHERE `started_by` = __ ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `ID` = __ JOBID__; 

Пасля заканчэння працы мы ўстаўляем нашы запісу вынікаў і адзначыць працу завершана. Памятаеце, як праца можа прыпыніць / аднавіць у любы момант забяспечыць пэўную ўстойлівасць ў ваш сцэнар. Цалкам верагодна, што задача прыпыняецца на палове шляху ўдасканалення сістэмы кіравання заданнямі, так што праверка запісаў на працу і колькасць вынікаў захаваны ў сістэме кіравання працай было б мудрым крокам.

Акрамя таго, у той час як гэта дэманструе, як працоўныя месцы могуць быць выбраны і кіруюцца з SQL-запыту кадр, які вы павінны сапраўды абстрагуючыся працу кіравання, так што калі вы вырашыце перайсці на выкарыстанне вэб-сэрвісаў, файл сістэмы, заснаванай на XML , або любой іншай лік сістэм, гэта не паўплывае на код вышэй.

Праца канфігурацыі

Наступным аспектам з'яўляецца памер працы і канфігурацыі. Гуляючы з працы канфігурацыі мы можам стукнуць выдатны баланс паміж хуткасцю, працэс рэплікацыі і надзейнасці. Вазьміце пару сцэнарыяў аператара А:

  1. Вакансіі ўзяць 1 дзень кожны для запуску: Гэта азначае, што працаўнікам неабходна 15 дзён для апрацоўкі кожнага задання (памятаеце, 10% магутнасці для 2/3rds часе). Гэта відавочна не мудрымі канфігурацыі, Ваша праца памер занадта вялікі! Гэта зойме мінімум у два разы час, каб уладкавацца на працу павінны апрацоўвацца пачатковай работніка ісці ў самаволку (час, каб забраць, што ён не вярнуўся ў выніку перапрацоўкі, плюс час). У ідэале вы павінны па меншай меры адзін поўны працу лёгка чысціцца ў канцы кожнага доўгага перыяду бяздзейнасці, такім чынам вы захаваеце працу над цікаюць, а ў горшым выпадку, калі праца зойме два дні, каб працэс павінен спачатку прайсці без вестак.
  2. Вакансіі заняць ад 1 хвіліны да запуску: Гэта азначае, што вашыя работнікі зойме каля 15 хвілін для выканання кожнага задання. Хоць гэта можа спачатку здацца ідэальнай, вы атрымліваеце дадатковую апрацоўку працы падчас абеду, кава-брэйкі, сустрэчы і г.д. гэты сцэнар ставіць нагрузку на іншыя вобласці сістэмы і ўводзіць свае ўласныя праблемы. Напрыклад, у першую чаргу вашы налады / час апрацоўкі суадносіны будзе ісці прама, таму страты эфектыўнасці сістэмы. Ваша сетка будзе пастаянна струменевага працы інфармацыі розных працоўных хвалюе супрацоўнікаў, якія дон іх паўсядзённым працы. Вы таксама збіраецца надаваць больш нагрузка на сервера апрацоўкі заданняў, як ён павінен страва з шмат-шмат маленькіх кавалачкаў працу на рэгулярнай аснове. Нарэшце, у гэтай сітуацыі, калі ваша праца сервер выходзіць з ладу, вы збіраецеся стварыць велізарнае бервяно назад незавершанага працы ў той час як больш працоўных месцаў маглі б, працягвалі апрацоўку ў шчасным недасведчанасці аб тым, што праца сервера, якія выпрабоўваюць цяжкасці.

На самой справе там будзе няма каму ідэальнай канфігурацыі для налады сеткі, шмат што залежыць ад наяўных рэсурсаў, відаў працы, службовых патрабаванняў затрат часу, магчымасць працы ў сеткі, і гэтак далей. Тым не менш некаторыя рэкамендацыі будуць:

  • Памер працу так, каб кожны работнік можа прайсці як мінімум 3-4 працоўных месцаў на працягу 15 гадзін (верагодна, самы доўгі перыяд прастою часу)
  • Гуляць з працай памер так, каб налада часу становіцца нязначным у параўнанні з апрацоўкай часу (з улікам вышэй кропкі).
  • Калі праца не была завершана ў два разы больш часу (можа быць менш), Вы чакаеце, каб завяршыць яго мяркуецца, што яго сышлі ў самаволку і пачаць яе апрацоўку з іншым работнікам. Гэта азначае, што вы, магчыма, прыйдзецца чакаць да трох разоў нармальная працягласць працы яго завяршэння (магчыма, і даўжэй, калі наступная праца не атрымоўваецца). Вы можаце скараціць гэты час, але будзьце асцярожныя, каб не паменшыць яго занадта шмат, як вы можаце пачаць дубляванне задач апрацоўкі на рэгулярнай аснове.
  • Вакансіі павінны быць незалежныя ад знешніх патрабаванняў, наколькі гэта магчыма. Праца сервера, напрыклад, павінны быць кантакты ў пачатку і ў канцы кожнай працы.
  • Ці не насыціць вашай сеткі, гэта будзе мець два адмоўных эфекту, ваш дзённай персанал знайсці з дапамогай сеткі расчараванне і праблемы могуць узнікнуць з падключэннем час чакання, што праблема будзе толькі горш, як вы маштабавання сеткі.
  • Забяспечыць працоўныя месцы могуць працаваць на вашых работнікаў. Калі праца стала занадта вялікі аб'ём памяці або дыскавай прасторы інтэнсіўная праца пачнецца перапыненне і адзінае, што вы заўважыце гэта кропля ў лік працоўных месцаў, апрацоўваюцца ніякай рэальнай прычыны, чаму.

Прадстаўленне вынікаў працы

Пры падачы вынікаў працы важна, каб пераканацца, што вынікі не былі прадстаўлены на іншага работніка, асабліва калі бягучы працоўны быў замарожаны на некаторы час.

Калі вынікі прадстаўлены пераканацца, што шэраг вынікаў, супадае з колькасцю запісаў у працу.

Як адзначалася раней, і не можа быць пераацаніць, пабудаваць адмоваўстойлівасці ў пошук працы і вынікі прадстаўлення. Работнікі могуць (і, хутчэй за ўсё, будзе) пераходзяць у рэжым чакання ў самы непадыходны раз, і гэта павінна быць абслужаны. Таксама яшчэ раз абстрагуючыся ад вашых вынікаў прадстаўленне дапаможа задаволіць будучыя змены ў працу сістэмы кіравання значна прасцей мець справу.

Рэзюмэ

У гэтым section мы глядзелі на тое, што сервер кіравання заданнямі трэба зрабіць і як атрымаць вельмі просты сістэмай налады. Мы абмяркоўвалі, як атрымаць працу ў сістэме кіравання, і як лепш наладзіць працоўныя месцы, каб атрымаць большасць нашых вашай сістэмы сеткі офіса. Каб скончыць, адзін-два абзаца аб прадстаўленні вынікаў на сервер кіравання заданнямі была прадстаўлена.

  • Сервер кіравання працай кіруе заданнямі і гарантуе, што ўсе працы будуць завершаны адзінак
  • Абстрагуючыся працу выбраць / вынікі прадстаўлення, мы можам змяніць тэхналогію кіравання серверам без асаблівых праблемы
  • Налада працоўных месцаў, каб яны працуюць хутка і эфектыўна, не падвяргаючы занадта шмат ціску на сеткавую інфраструктуру, і без дублявання задач апрацоўкі на рэгулярнай аснове.
  • Пераканайцеся, што вы будуеце адмоваўстойлівасці і памылкі checking ў вашай працэдуры, працаўнікі могуць прыпыніць і аднавіць, і ў самы непадыходны раз. Не забудзьцеся праверыць, калі вынікі ўжо былі прадстаўлены іншым работнікам.

Наступны раз

У частцы 3 мы ствараем віртуальную машыну, апрацоўкі і стварылі нашы вокны машыны, каб стаць часу прастою работнікаў.

Zend Framework: асновы - Агляд

Па , у суботу 28 лістапада 2009 10:42 вечара

Мой працадаўца ў апошні час заплаціў за групай распрацоўнікаў з нас узяць на сябе Zend Framework: асновы , вядома, тут я буду сумаваць мае думкі і меркаванні аб ходзе іншых. Для тых, хто хоча зэканоміць час, вось маё рэзюмэ:

Для распрацоўнікаў, якія не паспелі паглядзець на Zend Framework гэты курс (Zend Framework: асновы) забяспечвае добрую агульную карціну рамках ўвядзення вас у ключавых галінах і дае дастаткова інфармацыі для таго, каб працягнуць. Для тых, хто выдаткаваў час на пошукі ў рамках і рушылі ўслед за адзін або два кіраўніцтва гэтага, вядома, не прапанаваць значна далей.

Фон

Я быў PHP распрацоўшчык каля 5-6 гадоў, і пачалі працаваць з Zend Framework, на аснове кампанентаў на працягу апошніх 6 месяцаў. Я распрацаваў і / або быў распрацоўшчыкам некалькі невялікіх Zend Framework MVC sites. я, шчыра кажучы, у мяне не было велізарная колькасць кантактаў з іншымі рамкі, кадаваньне пункту гледжання, але на працягу некалькіх гадзіны, даследуючы праекта вэб-сайтаў і ацэнкі them. рамкі і навакольныя супольнасці Zend Framework цалкам цікавай і, здаецца, ёсць велізарныя магчымасці ў тым, дзе яго збіраюцца.

Аб курсе

Курс пастаўляецца больш за 9 двухгадзінны сесіі WebEx (з 10-хвілінны перапынак у сярэдзіне). Часу марнуецца перажывае набор слайдаў, якія прадстаўляюцца Zend з абмеркаваннем у любы час. Вы можаце выкарыстоўваць мікрафон для размовы з інструктарам, але, шчыра кажучы, я не бачу нікога выкарыстоўваць нешта большае, чым акно чата. Акрамя таго, машына VMWare Ubuntu пры ўмове, што ёсць прыклад кода і праектаў створана пробная версія Zend Studio. Вядома лідэр перамовы удзельнікаў альбо па рашэнні інтэграваны VoIP, або вы можаце патэлефанаваць у выкарыстанні адной з многіх ва ўсім свеце набору ў лічбах.

У ходзе матэрыял складаецца з кароткага агляду Framework і MVC шаблон, перш чым адправіцца ў прыклад прыкладання гасцявой кнізе. Дыскусія паказала загрузку, Zend_Application, табліцы базы дадзеных, доступу да базы дадзеных, формы, фільтраванне, ACL, сартаваць і г.д., і г.д. У асноўным, якія ахопліваюць усе тэмы, якія вы б патрабаваць, каб атрымаць асноўны сайт да працуе ўвесь час дае вам прылады для пайсці і атрымаць больш прасунутыя ў рамках (хоць гэта зрабіў суму "глядзіце на сайце" вялікую частку часу).

Час дадзена для кадавання некаторыя прыклады, а таксама распрацаваць "гасцёўня кніга" і прымяненне простых "вікі". Асабіста я адчуваў, што прадастаўленне або код кожнага прыкладання, а затым просяць нас развіваць тое, што, па сутнасці копіяй побач на самай справе не забяспечваюць добры вопыт. Я б аддаў перавагу, каб распрацоўваць прыкладанні падобныя, але не ідэнтычныя. да прыкладу прыкладання перавага мець кіраўніцтва для абазначэння. Акрамя стварэння прыкладанняў з нуля демонстратора б, магчыма прывялі да больш пытанняў аб тым, чаму і як, што дае больш поўнае ўяўленне аб рамках, у рэшце рэшт вы можаце паглядзець на спецыфіку пасля заканчэння курса.

Апошняя лекцыя складаецца з працуюць на вікі прыкладанні з дапамогай / кіраўніцтвам інструктара. Пасля курсу зваротнай сувязі было прынята, было падкрэслена некалькі разоў на працягу курсу, Zend мае зваротная сувязь вельмі сур'ёзна, на самай справе па-відаць наша версія курсу была зусім новай. Некаторыя іншыя распрацоўнікі ў кампаніі будуць прымаць курс хутка так і будзе цікава паглядзець, калі гэта адбылося.

Вядома стыль быў нефармальны, дазволеных да зваротнай сувязі і ўзаемадзеяння паміж удзельнікамі і інструктарам. Вядома лідэрам быў дружны, даступным (адрасы электроннай пошты былі падзеленыя на пытанні), і, хоць яго прэзентацыя слайдаў была трохі няўпэўнена здавалася, цалкам кампетэнтны ў рамках. Ён відавочна быў хтосьці, хто выкарыстаў рамкі на рэгулярнай аснове, а не той, хто вучыць вучыць, вядома, мне спадабаўся досвед «рэальнага свету» у гэтым стаўленні.

Агульная адчуванне

У пэўным сэнсе я знайшоў ход пустое марнаванне часу, у іншых гэта было вельмі зручна. Спадзяюся, я атрымаю мае довады па выразна, і, магчыма, забяспечыць некаторую ежу для разважанняў і карысную інфармацыю (ведаючы мяне гэта наўрад ці!).

Для мяне гэты курс быў накіраваны на занадта нізкім узроўні. Прайшоўшы Кіраўніцтва па хуткім старту, чытаць Адзежа Алена Zend Framework ў дзеянні, а таксама працаваў з рамкамі нямногае, што я на самой справе не атрымаць нічога занадта шмат. Я б, вядома спадабалася, каб забраць з канца хуткі старт і развіццё дадатковых навыкаў.

Тым не менш, назва курса робіць выразна дзяржавы "Zend Framework: асновы", і ў гэтым аспекце курс дасягае таго, што ён мае намер зрабіць. Іншыя чальцы каманды распрацоўшчыкаў, якія не правялі час на пошукі ў рамках кожнай сесіі скончыў з энтузіязмам задавалі пытанні і які сапраўды прыемна бачыць.

Не ўсё было страчана, было прыемна правесці час пацвярджае асноўныя дэталі структуры і атрымаць задаць пару пытанняў у абласцях, дзе я не быў на 100%. Гэта было таксама час, што я павінен сядзець кожны дзень, і думаць аб кадаванні з выкарыстаннем рамак і будучых праектаў, то я б не змог паступіць інакш (вы можаце ўявіць Вашу кампанію пагадзіцца на гэта? :)). Не ў апошнюю чаргу вы таксама атрымаеце добры сертыфікат Zend сказаць, што вы прынялі ўдзел у курсе (хоць і па электроннай пошце).

Zend Framework сертыфікацыі

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.

Рэзюмэ

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.
  • Used the Zend Framework: While it was nice to shore up some of the very basics I felt the time, effort, and funds to take the course could of been better spent elsewhere. 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.

Вялікабрытанія імёны каталогаў і прыкладанняў Facebook

Па , у пятніцу 10 красавіка 2009 09:33 am

Адна з пацешных рэчаў, якія я прымаў удзел у той час працаваў Tracesmart гэта імёны каталогаў . У асноўным мы ўзялі нашу вялікую базу дадзеных інфармацыі і выцягнуў вялікую кучу статыстыкі аб розных імёнаў.

Працэс гэта ўсё адна вялікая SEO намаганняў для таго, каб прыцягнуць больш трафіка на сайт, але ён таксама дае некаторыя цікавыя звесткі і імя статыстыкі.

Вось прыклад майго імя Лойд Уоткин , ці я мяркую, больш правільна Стывен Уоткин . Спыніцеся на хвілінку, каб паглядзець ваша імя на сайце Tracesmart, можа быць цікава ;)

Мы таксама атрымалі імёны статыстычных дадзеных на імёны каталогаў старонку, якая кажа вам, што імёны былі шукаць і як нядаўна. Яго вельмі цікава ўбачыць імёны вядомых людзей ўзляцець статыстыку, калі яны з'яўляюцца ў навінах. Адным з апошніх прыкладаў з'яўляецца тое, што Ліам Нісан , хто жонка памерла ад лыж аварыі ў апошні час, хоць, відавочна, людзі не зусім правільна на правапіс (адсюль і велізарная колькасць хітоў на гэта назва) - Лаям Нільсан .

Facebook прыкладанняў

Як толькі імёны каталогаў была створана, мы прыступілі да стварэння прыкладанняў facebook якія мы duely пад назвай « Імя Маё ". Дадатак facebook з'яўляецца пашырэннем імёнаў каталогаў і дае некаторыя дадатковыя статыстыкі. Для таго, каб дадаць імёны каталогаў для вашага ўліковага запісу facebook калі ласка, наведайце:

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













Panorama Theme by Themocracy

3 наведвальнікаў онлайн
2 guests, 1 bots, 0 members
Max visitors today: 22 at 07:35 am UTC
У гэтым месяцы: 26 у 2012/04/04 10:27 вечара UTC
У гэтым годзе: 69 у 2012/02/27 09:56 UTC
За ўвесь час: 130 у 2011/03/28 10:40 вечара UTC