บทความ : หมวดหมู่

OAuth / Twitter รับรองความถูกต้องอะแดปเตอร์สำหรับ Zend Framework

โดย , วันเสาร์ 23 เมษายน 2011 15:57

ยังคงทำงาน (ช้า) เมื่อวันที่ใหม่ของฉัน ว่า โปรแกรมตาม กว่าคู่ต่อไปของวันหยุดธนาคารฉันหวังว่าจะได้รับโมเมนตัมไปอีกครั้งในโครงการ (ทั้งๆที่ของสภาพอากาศที่ยอดเยี่ยมในปัจจุบัน) อย่างไรก็ตามงานต่อไปของฉันคือการสร้างการตรวจสอบอะแดปเตอร์สำหรับ กรอบ Zend . ฉันมีการดำเนินการเข้าสู่ระบบการทำงาน แต่มีลดลงในอะแดปเตอร์สำหรับการรับรองความถูกต้อง Zend Framework ดูเหมือนข้อเสนอที่น่าสนใจดังนั้นฉันสร้างมัน ...

(ฉันจะไม่ไปผ่าน OAuth หรือลงทะเบียนใบสมัครของคุณด้วย Twitter มีหลายร้อยคำแนะนำและเป็นกระบวนการที่ค่อนข้างตรงไปตรงมา แต่อย่างใด.)
อ่านต่อ'OAuth / Twitter รับรองความถูกต้องอะแดปเตอร์สำหรับ Zend Framework'»

"เข้าสู่ระบบด้วย Twitter"การใช้ Zend Framework

โดย วันพฤหัสบดีที่ 17 มีนาคม 2011 01:07

แม้จะมีทั้งหมดที่ ว่าเกลียด ในขณะที่ผมได้ตั้งค่าออกเพื่อสร้างใหม่ twitter โปรแกรมตาม เป็นคนที่จัดการหลายบัญชี (ทั้งส่วนบุคคลและสำหรับการทำงานขององค์กรการกุศลของฉัน) ฉันได้รับเครื่องมือที่จำเป็นต้องมีสำหรับบางครั้งที่ฉันแค่รับรอบการเขียน (เพิ่มเติมจากการที่ในอนาคตอันใกล้ ... )

ผมเคยอ่านข้อมูลเกี่ยวกับ Zend_Oauth_Consumer และวิธีการที่สามารถนำมาใช้จะได้รับการอนุมัติสำหรับการโต้ตอบกับ Twitter โดยใช้ OAuth . ทั้งหมดที่ดีและดีฉันมีคีย์ในการเข้าถึงของฉันและฉันสามารถโพสต์อย่างสนุกสนานไปในนามของผู้ใช้ มีมากมายของทรัพยากรออกมีการทำเช่นนี้เพื่อฉันจะไม่เจาะคน

ขั้นตอนต่อไปคือการเปิดโอกาสให้ประชาชนที่จะกลับไปยังเว็บไซต์ที่เข้าสู่ระบบและปรับเปลี่ยนบัญชีของพวกเขา นี่คือที่ฉันถึงเป็นปัญหาเล็กน้อย โดยใช้ตัวอย่างรหัสบนเว็บไซต์หมายความว่าฉันได้ถามฉันว่าสำหรับการอนุมัติการเข้าถึงอีกครั้งสำหรับการเข้าสู่ระบบแต่ละไม่ดี การสแกนผ่านกรอบที่ผมไม่เห็นอะไรที่จะช่วยให้ฉันเพียงแค่ขอตรวจสอบ ว่าจะไม่พูดไม่ได้มี แต่มีไม่ได้ดูเหมือนจะมีกลไกการตรวจสอบที่สามารถถูกเรียกโดยไม่ทราบว่าโทเค็นการเข้าถึงที่มีอยู่แล้ว

ทางเลือกที่ถูกในการดำเนินการเข้าสู่ระบบเว็บไซต์ที่ใช้ในการจัดเก็บหรืออย่างใดโทเค็นการเข้าถึงของผู้ใช้บนไคลเอนต์ (เข้ารหัสของหลักสูตร) ไม่เหล่านี้ดูเหมือนจะเป็นทางออกที่ดี / เหมาะสม

อ่านต่อ'"เข้าสู่ระบบด้วย Twitter"การใช้ Zend Framework'»

Zend Certified Engineer (ZCE) 5.3

โดย วันพฤหัสบดีที่ 30 กันยายน 2010 09:00

ที่มีการ ปล่อยอย่างเป็นทางการ ของ Zend วิศวกรเซ็นรับรองโปรแกรม (ZCE) สำหรับ 5.3 ฉันคิดว่าฉันให้การแสดงผลอย่างรวดเร็วของฉันจากสิ่งที่ฉันคิดของการสอบ

พื้นหลังเล็กน้อยเกี่ยวกับตัวเอง : ฉันถูกนำแรกที่ PHP ประมาณ 7 ปีที่ผ่านมาและได้ทำงานอย่างมืออาชีพใน PHP ตั้งแต่ปี 2006 ฉันกำลังทำงานที่เรียกว่าเริ่มต้นขึ้นที่น่าตื่นเต้น Brightpearl อยู่ใน Bristol, UK , การผลิตรวม CRM, บัญชี, และซอฟแวร์อีคอมเมิร์ซ ฉันยังไม่ได้รับมาก่อนหน้าใด ๆ ของคุณสมบัติ ZCE หน้าที่แล้ว ฉันกำลังพัฒนาในชุด 5.2.X และไม่ได้ใช้จริงๆใด ๆ ของเฉพาะ 5.3 คุณสมบัติ (ฉันรอ Zend Framework 2 และ หลักคำสอน 2) ในโครงการพัฒนาของฉัน
อ่านต่อ'Zend วิศวกรที่ผ่านการรับรอง (ZCE) 5.3'»

เริ่ม Symfony ด่วน DI (พึ่งพาการฉีด) การสอน

โดย , วันเสาร์ 14 สิงหาคม 2010 14:21

คืออะไร พึ่งพาการฉีด (DI)?

ฉีดพึ่งพาเป็นเทคนิคที่ช่วยให้สำหรับวัตถุคู่อย่างอิสระภายในโปรแกรมซอฟต์แวร์ โดยทั่วไปถ้าวัตถุต้องเข้าถึงฟังก์ชันการทำงานของผู้อื่นก็จะถูก instantiated ภายในที่นำไปสู่​​ระบบคู่แน่น โดยการดำเนินการฉีดพึ่งพาเราฉีดวัตถุที่จำเป็นพร้อมใช้งาน (บางครั้งยังเรียกผกผันของการควบคุม -- IOC) ใช้ตัวอย่างต่อไปนี้

  <? PHP
 DecisionMaker คลาส {
     makeDecision ทำงานสาธารณะ ($ array พารามิเตอร์) {
         / Need / อะแดปเตอร์ฐานข้อมูล
         $ DP = ใหม่ DecisionParameters ();
         $ parameterScore = $ DP -> getScore ($ พารามิเตอร์);
         / * ...  ตรรกะการตัดสินใจบางอย่างเพิ่มเติม ...  * /
         กลับ ($ parameterScore> 50);
     }
 } 

ชิ้นส่วนของรหัสนี้จะกล่าวได้ว่าเป็นคู่แน่นกับวัตถุที่ DecisionParameters เขียนใหม่ดังกล่าวข้างต้นในแฟชั่นคู่อย่างอิสระที่เราต้องการได้สิ่งที่ต้องการ ...

  <? PHP
 DecisionMaker คลาส {
     ส่วนตัว $ _dp;
     ฟังก์ชั่น __construct สาธารณะ ($ DP) {
         $ this -> _dp = $ DP;
     }
     makeDecision ทำงานสาธารณะ ($ array พารามิเตอร์) {
         $ parameterScore = $ this -> _dp -> getScore ($ พารามิเตอร์);
         / * ...  ตรรกะการตัดสินใจบางอย่างเพิ่มเติม ...  * /
         กลับ ($ parameterScore> 50);
     }
 } 

ขณะที่การดึงดูดประโยชน์ของรหัสคู่อย่างอิสระเราจะเพิ่มความซับซ้อนดังกล่าวว่าแต่ละครั้งที่วัตถุเป็น instantiated เรายังมีการ instantiate การอ้างอิงและผ่านเหล่านี้ในเกินไป ตัวอย่างเช่นนี้

  $ = DecisionMaker ทางเลือกใหม่ ();
 echo $ ตัวเลือก> makeDecision (array ('ความพยายาม'=>'ต่ำ','กลับ'=>'สูง')); 

ตอนนี้กลายเป็น :

  $ DP = ใหม่ DecisionParameters ();
 $ ทางเลือกใหม่ = DecisionMaker ($ DP);
 echo $ ตัวเลือก> makeDecision (array ('ความพยายาม'=>'ต่ำ','กลับ'=>'สูง')); 

สถานการณ์นี้จะกลายเป็นเจ็บปวดมากขึ้นเป็นตัวเลขของการอ้างอิงสำหรับชั้นเรียนที่เพิ่มขึ้นและสิ่งที่ถ้าการอ้างอิงตัวเองมี dependencies? นี้ค่อนข้างได้อย่างรวดเร็วสามารถกลายเป็นฝันร้ายของการบริหารจัดการวัตถุ! ใส่ภาชนะบรรจุฉีดพึ่งพา (หรือกรอบ) ...
อ่านต่อ'เริ่มต้น Symfony ด่วนสอน DI (พึ่งพาการฉีด)'»

Naked Zend_Layout และ Zend_View

โดย , อังคาร 10 สิงหาคม 2010 11:47

ในบทความนี้ผมดูที่การใช้ Zend_Layout และ Zend_View พร้อมกับควบคุมด้านหน้าเรียบง่ายเพื่อแสดงว่าเป็นไปได้ที่จะเริ่มต้นแยกตรรกะทางธุรกิจและนำเสนอภายในโปรแกรมประยุกต์ของคุณ รหัสทั้งหมดสามารถใช้ได้ใน GitHub :
Zend_Layout เปล่าและ Zend_View บน GitHub .

ดำเนินการต่อ'Zend_Layout เปล่าและ Zend_View'อ่าน »

Zend Framework ต่อโมดูลการตั้งค่าเค้าโครง -- ติดตาม

โดย วันอังคารกุมภาพันธ์ 16, 2010 08:48

ในฐานะที่เป็นติดตามการโพสต์ก่อนหน้าของฉันเกี่ยวกับ การตั้งค่าโมดูลตามรูปแบบต่อ สำหรับ Zend Framework , ฉันได้ปรับปรุงรหัสเพื่อกำหนดค่าน้อยแล้วก่อนที่จะ (ไม่ว่ามันต้องมากขึ้นว่าไม่กี่บรรทัดในการกำหนดค่าโปรแกรมประยุกต์ของคุณ!)
อ่านต่อ'Zend Framework การตั้งค่าเค้าโครงโมดูล -- ติดตาม'»

การสร้าง URL ใน Zend ดู Custom Helper

โดย วันพฤหัสบดีที่ 28 มกราคม 2010 11:01

นี้อาจดูเหมือนง่าย แต่ฉันถูกตีตัวหัวของฉันพยายามที่จะสร้าง URL ในมุมมองของผู้ช่วยที่กำหนดเองใน Zend Framework . ฉันมีเส้นทางการติดตั้งโมดูลที่ได้รับจากโดเมนย่อยในการใช้งานดังนั้นฉันไม่สามารถใช้ URL ที่ hardcoded ง่าย

ดำเนินการต่อ'URL ที่สร้างใน Zend ดู Custom Helper'อ่าน »

ขอเส้นทางสำหรับการ sitemap.xml ไปยังตัวควบคุมที่กำหนดเอง / การดำเนินการ

โดย , วันพุธ 6 มกราคม 2010 12:13

เพื่อให้การร้องขอโดยตรงสำหรับ / sitemap.xml ตัวควบคุมที่กำหนดเองและการกระทำของคุณใน กรอบ Zend เพียงแค่เพิ่มการประยุกต์ใช้ต่อไปนี้ใน application.ini หรือ config ไฟล์ทางเลือกของคุณ (เช่นผมใช้ navigation.ini) :

 resources.router.routes.sitemap.route ="sitemap.xml"
 resources.router.routes.sitemap.defaults.controller = ดัชนี
 resources.router.routes.sitemap.defaults.action sitemap =

รหัสตัวอย่างสำหรับการแสดงผลที่สามารถเห็นได้โดยการสร้างการกระทำในการควบคุมที่เหมาะสม (เช่น Sitemap ของฉันได้อยู่ในการควบคุมการดัชนีการดำเนินการเว็บไซต์) :

 < PHP
 IndexController ชั้น
     ขยาย Zend_Controller_Action
 {
     / **
      * การแสดงผลแผนผังเว็ปไซต์ที่ขึ้นอยู่กับการติดตั้ง Zend_Navigation
      * /
     sitemapAction ฟังก์ชั่น (มหาชน)
     {
    	 echo $ this -> View -> นำทาง () --> แผนผังเว็ปไซต์ ();
    	 $ this -> View -> เค้าโครง () -- disableLayout> ();
    	 $ this -> _helper -> viewRenderer -> setNoRender (true);
     }
 }

เว็บไซต์ได้อย่างรวดเร็วและง่ายที่จะสร้างขึ้นโดยใช้ Zend_Navigation เป็นรวดเร็วกวดวิชาที่ดี (และโดยทั่วไปมีประโยชน์มากสำหรับ tutorials Zend Framework) เป็น Zend Casts -- การสร้างแบบไดนามิกเมนูแผนผังและ breadcrumbs .

ตารางการคำนวณของ Office ที่ใช้สภาพแวดล้อมเสมือนจริง -- Part 4

โดย , วันศุกร์ 4 ธันวาคม 2009 23:59

การแนะนำ

ผมทำงานใน บริษัท ที่เราเรียกใช้งานชุดการประมวลผลหลายล้านระเบียนของข้อมูลในแต่ละวันและฉันได้รับความคิดเกี่ยวกับเมื่อเร็ว ๆ นี้ทุกเครื่องที่นั่งรอบแต่ละคนและทุกวันทำอะไรเป็นเวลาหลายชั่วโมง มันจะไม่ดีถ้าเราสามารถใช้เครื่องเหล่านั้นเพื่อหนุนพลังการประมวลผลของระบบของเรา? ในชุดของบทความนี้ฉันจะไปดูที่ผลประโยชน์ที่อาจเกิดขึ้นจากการจ้างงานสำนักงาน ตาราง การใช้สภาพแวดล้อม virtualised

ใน ส่วนที่ 3 เราได้สร้างเครื่องประมวลผลของเราเสมือนและการตั้งค่าเครื่อง Windows จะกลายเป็นแรงงานที่ไม่ได้ใช้เวลา

ใช้รหัสล่าสุด

ย่อมหลังจากการสร้างตรรกะทางธุรกิจของคุณคนงานจะมีการเปลี่ยนแปลงข้อบกพร่องจะพบรหัสได้เร็วขึ้นมีประสิทธิภาพมากขึ้นจะมีการผลิตจึงออกจากงานของคุณนั่งรอบการประมวลผลข้อมูลโดยใช้ รหัสเหม็นเก่า . วิธีการที่เราทำแล้วให้แน่ใจว่าเรามักจะใช้รุ่นล่าสุดและยิ่งใหญ่ที่สุดของสคริปต์ในการประมวลผลของเราหรือไม่

มีเพียงไม่กี่ง่ายมากวิธีการง่ายๆที่เราสามารถทำเช่นนี้เคล็ดลับที่ แต่จะลดการใช้พลังงานในการประมวลผลและการจราจรของเครือข่ายในการบรรลุเป้าหมายนี้ ให้เริ่มต้นด้วยที่ง่ายที่สุดของการแก้ปัญหาและปรับปรุงมันช้ากว่าสองสามซ้ำ

วิธีแรกจะเป็นเพียงแค่เชื่อมต่อกับเซิร์ฟเวอร์การควบคุมของเรางาน (ผ่าน Samba, FTP, หรือคล้ายกัน) และดึงลงรุ่นล่าสุดของรหัสที่ ไม่มากอย่างมีประสิทธิภาพ แต่มันจะทำงานได้ ช่วยให้การปรับปรุงในที่ค่อนข้างวิธีการเกี่ยวกับการสร้างสคริปต์ rsync และใช้ที่ในแต่ละครั้งแทน? หรือสิ่งที่เกี่ยวกับการวางสคริปต์การประมวลผลใหม่ล่าสุดของเราในการโค่นล้มการตรวจสอบออกรหัสครั้งแรกแล้วเพียงแค่การปรับปรุงโค้ดของเราในการทำงาน (แต่ละ svn update )?

ในที่สุดเราอาจจะจบลงด้วยสคริปต์ทุบตี (เรียกโดย cron ทุกๆ 10 นาที) ซึ่งมีลักษณะเป็นง่ายๆเป็นนี้ :

  #! / bin / sh
 ถ้า PS ขวาน grep | grep - V | grep PHP > / dev / null
 แล้ว
     echo"งานอยู่ในขณะนี้การประมวลผลที่ออก"
 อื่น
     echo"งานไม่ได้ทำงานอยู่เริ่มต้นตอนนี้"
     cd / path / to / การทำงาน / สำเนา
     ปรับปรุง svn
     yourJobProcessingScript.php PHP
 Fi 

ตอนนี้เราสามารถมั่นใจได้ว่ามีการทำงานในแต่ละแน่นอนเรากำลังใช้รหัสล่าสุด เรากำลังสร้างความมั่นใจนี้โดยการปรับปรุงฐานรหัสของเราทุกครั้งที่เราดำเนินการทำงานและลดการจราจรของเครือข่ายโดยเฉพาะการถ่ายโอนแฟ้มที่แตกต่างกันในเครือข่ายของเรา

ในการตั้งค่าการสาธิตของฉันฉันไม่ตรงตามที่กล่าวข้างต้น การโค่นล้มถูกติดตั้งบนเซิร์ฟเวอร์ของฉันในการประมวลผลงานและฉันก็ดึงรหัสล่าสุดจาก'คน'สาขาการใช้'svn update' ฉันยังเพิ่มแท็กหมายเลขรุ่นสคริปต์ในการประมวลผลของฉันที่ถูกส่งกลับไปยังฐานข้อมูลเป็นส่วนหนึ่งของผลการค้นหา วิธีนี้ผมเห็นว่ารหัสของฉันคือการปรับปรุงในแต่ละครั้งที่ผมคัดลอกลำต้นของฉันเป็นเช่นสาขาผู้ปฏิบัติงานที่แน่นอนผมใช้สคริปต์ในการประมวลผลใหม่ล่าสุด

ใช้ข้อมูลล่าสุด

หากการประมวลผลงานของคุณทำให้การใช้งานของแหล่งข้อมูลนั้นในบางจุดเหล่านี้จะได้รับการปรับปรุงมากเกินไป จนกว่าคุณจะเรียกข้อมูลของคุณบนพื้นฐานแหล่งที่มาไม่บ่อยมากที่คุณกำลังจะน้ำท่วมเครือข่ายของคุณที่มีการจราจรทันทีที่คนงานของคุณเริ่มทำงานทุกอย่างเพื่อนำหยุดนิ่ง สำหรับการแก้ปัญหาของฉันฉันตัดสินใจว่าฉันต้องการย้ายแหล่งข้อมูลของฉันรอบกับ VMs ของฉัน

ถือคุณมีม้า! ถ้าแหล่งข้อมูลของฉันมีขนาดใหญ่มาก? อย่างนี้จริงๆเป็นกรณีของการเท่าใดข้อมูลที่เราพูดได้หรือไม่ มันอาจจะเป็นค่าใช้จ่ายมีประสิทธิภาพมากขึ้นที่จะติดตั้งเพิ่มเติมฮาร์ดไดรฟ์ขนาดใหญ่เป็นแต่ละเครื่องมากกว่าที่จะซื้อเซิร์ฟเวอร์ในการประมวลผลเพิ่มเติม นี้เป็นคำถามของงบประมาณและขึ้นอยู่กับธุรกิจที่จะตัดสินใจ มันอาจจะแหล่งข้อมูลของคุณมีขนาดใหญ่เพื่อที่ว่าทำไม่ได้เพียงเพื่อให้จำนวนของข้อมูลที่ผู้ปฏิบัติงานในเครื่องของคุณ ในกรณีที่สิ่งที่คุณจะทำอย่างไร ดีที่เราสามารถมองไปที่โทรเซิร์ฟเวอร์ข้อมูลท้องถิ่น แต่นี้อาจทำให้เกิดปัญหากับเครือข่าย ในกรณีนี้ระบบกริดเช่นนี้อาจจะกลายเป็นไม่สมจริงเพื่อรวมไว้ในสภาพแวดล้อมที่สำนักงานของคุณ นอกจากนี้ยังอาจเป็นได้ว่าคุณสามารถมองเข้าไปในกลยุทธ์การทำงานทางเลือกเป็นเพียงตัวอย่างเท่านั้นโทรแรงงานของคุณ 20:00 - 06:00 ในแต่ละคืนและ / หรือการควบคุมปริมาณการร้องขอข้อมูลแหล่งที่มา

ย้ายที่ช่วยบอกข้อมูลของเราจำนวนเงินแหล่งที่มาเพื่อ 100GB ของข้อมูล ดีใช่ว่าไม่น้อยของข้อมูลที่จะย้ายไปรอบ ๆ เครือข่ายในการปรับปรุง วิธีการที่เราจะมั่นใจได้ว่าเรามีสำเนาล่าสุดของข้อมูลในกรณีนี้ rsync เป็นไปได้ แต่ส่วนตัวผมคิดว่าโดยใช้แหล่งข้อมูลของคุณบนเซิร์ฟเวอร์ใหม่ล่าสุดของการประมวลผลงานและการตั้งค่านี้เป็นหลักในการจำลองแบบ (ที่มีบันทึกดีถังยาว) อาจจะมีวิธีที่จะไป :

การทำซ้ำ โดยการตั้งค่าของแต่ละคนของคุณเป็นทาสกับงานการควบคุมการปรับปรุงเซิร์ฟเวอร์ไปยังแหล่งข้อมูลของคุณจะหยดลงอย่างสวยงามให้กับแรงงานของคุณโดยไม่เพิ่มขึ้นอย่างมากในกิจกรรมของเครือข่าย (ซึ่งก็คือจนกว่าคุณจะทำการปรับปรุงข้อมูลขนาดใหญ่และทุกคนของคุณเตะใน ในครั้งเดียว) นี้มีข้อดีมากกว่า rsync ในที่ที่คุณจะไม่ได้รับหยุดยาวก่อนที่งานแต่ละงาน; การปรับปรุงฐานข้อมูล MySQL daemon เกี่ยวกับงานของคุณอย่างต่อเนื่องจะปรับปรุงข้อมูลในขณะที่การประมวลผลอย่างต่อเนื่อง

นี่คือวิธีที่ฉันจะตั้งค่าเซิร์ฟเวอร์สาธิตของฉัน การตั้งค่าการจำลองแบบผมทำตามคู่มือบนเว็บไซต์ของ MySQL ( การตั้งค่าการทำแบบจำลอง ) และภายใน 20 นาทีผมมีคนงานของฉัน inital งานจำลองการควบคุมชุดข้อมูลเซิร์ฟเวอร์ สำหรับคนงานแต่ละการตั้งค่าการจำลองแบบและกระบวนการทำงานในแต่ละครั้งเมื่อ VM จะถูกคัดลอก

ข้อมูลอย่างย่อ

ในส่วนของบทความนี้เราได้ดูที่วิธีการที่ง่ายและไม่เจ็บปวดก็คือการเก็บรหัสของการประมวลผลของคุณให้ทันสมัย​​โดย using rsync หรือ subverion (SVN) ที่จะทำงานและลดการจราจรของเครือข่ายที่ time. เดียวกันนอกจากนี้เรายังกล่าวถึงวิธี ในการเก็บข้อมูลแหล่งที่มาของข้อมูลที่ทันสมัย​​โดยให้มันหยดลงไปแต่ละคนของคุณ ดังนั้นเรามั่นใจว่าพื้นที่ที่เราให้ทันกับตรรกะทางธุรกิจและข้อมูลในระบบกริดของเราที่สำนักงาน มีอย่างเห็นได้ชัดจะเป็นทางเลือกที่นับไม่ถ้วนที่จะดำเนินการงานเหล่านี้ แต่นี่เป็นสองตัวอย่างง่ายๆเพื่อแสดงวิธีการง่ายเป็นวิธีแก้ปัญหามาโดย

เวลาถัดไป

ในส่วนสุดท้ายของชุดนี้ชื่อ aptly ส่วนที่ 5 เราจะหารือเกี่ยวกับการปรับใช้ระบบนี้เพื่อ ฉันจะสรุปสิ่งที่ได้รับการเรียนรู้และสิ่งที่ฉันจัดการเพื่อสร้าง

ตารางการคำนวณของ Office ที่ใช้สภาพแวดล้อมเสมือนจริง -- ส่วนที่ 3

โดย , วันศุกร์ 4 ธันวาคม 2009 11:37

การแนะนำ

ผมทำงานใน บริษัท ที่เราเรียกใช้งานชุดการประมวลผลหลายล้านระเบียนของข้อมูลในแต่ละวันและฉันได้รับความคิดเกี่ยวกับเมื่อเร็ว ๆ นี้ทุกเครื่องที่นั่งรอบแต่ละคนและทุกวันทำอะไรเป็นเวลาหลายชั่วโมง มันจะไม่ดีถ้าเราสามารถใช้เครื่องเหล่านั้นเพื่อหนุนพลังการประมวลผลของระบบของเรา? ในชุดของบทความนี้ฉันจะไปดูที่ผลประโยชน์ที่อาจเกิดขึ้นจากการจ้างงานสำนักงาน ตาราง การใช้สภาพแวดล้อม virtualised

ใน ส่วนที่ 2 เรามองที่งานของเซิร์ฟเวอร์ที่จะทำงานและวิธีการงานควรจะกำหนดค่าเพื่อให้บรรลุจำนวนมากที่สุดของการประมวลผลในขณะที่มั่นใจว่างานแต่ละงานมีการประมวลผลโดยไม่ต้องล้มเหลว

การตั้งค่าการปฏิบัติงานของคุณ -- หรือเซิร์ฟเวอร์ปวกเปียก

ขั้นตอนต่อไปในกระบวนการคือการตั้งค่าแรงงานเสมือนของคุณ สำหรับเรื่องนี้ฉันจะใช้การติดตั้ง CentOS ใช้ VirtualBox ฉันจะติดตั้ง mySQL และ PHP บนเซิร์ฟเวอร์ที่รู้จักกันว่าเป็นปวกเปียก (nux ​​Li, ม. ySQL, P HP) Servera (ฉันอาจได้ชื่อที่ขึ้นไป)

  • ติดตั้ง VirtualBox ในเครื่อง Windows ของคุณ (ติดตามการเชื่อมโยง)
  • ดาวน์โหลดและติดตั้ง CentOS (รุ่นปัจจุบัน 5.3) ภายในเครื่องเสมือนที่สร้างขึ้น

มีจุดผมจะไปนี้ไม่อาจมี s 1,000'ของ tutorials ดีออกมี (ตกลงนี่คือหนึ่ง : การสร้างและเครื่อง Managing CentOS เสมือนภายใต้ VirtualBox ) จุดสำคัญที่ควรทราบผมคิดว่าเป็นที่ฉันเรียกว่าเครื่อง GridMachine ของฉันเสมือน

เท่าที่ฉันมีทางเลือกของลูกค้า virtualisation และระบบปฏิบัติการไปไม่มีเหตุผลที่น่าสนใจที่ยิ่งใหญ่สำหรับแต่ละทางเลือกคือ VirtualBox เป็นสิ่งที่ฉันใช้กับเครื่องที่บ้านของฉันและได้รับการสนับสนุนโดยสามระบบปฏิบัติการหลัก ผมเลือก CentOS เป็นระบบปฏิบัติการที่มีความคงตัวที่ดีและฉันจะใช้มันบนเว็บเซิร์ฟเวอร์ของฉันเอง ผมเชื่อในเรื่องเครื่องมือที่เหมาะสมสำหรับการทำงาน (แม้ว่าฉันใช้'การใช้งานเร็วและง่ายที่สุดสำหรับคุณความคิดที่นี่) ดังนั้นหากระบบ X ระบบปฏิบัติการเรียกใช้รหัสของคุณได้เร็วและมีประสิทธิภาพมากใช้ที่แทน :)

ที่สำคัญให้แน่ใจว่า VM ของคุณใช้ DHCP, อื่น ๆ สำหรับแต่ละเครื่องเสมือนใหม่จะต้องมีการกำหนดค่าแยกจากกันซึ่งเป็นสิ่งที่เราไม่ได้ใช้ DHCP want.By เราไม่จำเป็นต้องตั้งค่าเครือข่ายสำหรับเครื่องแต่ละคนงาน, DHCP จะมือ IP ที่ออกสำหรับคุณ ดังนั้นคุณสามารถคัดลอกเครื่องเสมือนของคุณเกี่ยวกับสำนักงานโดยไม่ต้องกังวลเกี่ยวกับการตั้งค่าแต่ละคนขึ้นไป (นี้ช่วยเพิ่มความยืดหยุ่นและลดการบริหารคนงาน)

ขั้นตอนที่คุณควรมุ่งมั่นเพื่อให้บรรลุจะได้รับเครื่องทางกายภาพใหม่ติดตั้ง VirtualBox แล้วสวยมากปรับใช้ภาพที่เสมือนโดยไม่ต้องมากอื่น มันอาจจะฉลาดในการติดตั้งคนงานของคุณทั้งหมดบนเครือข่ายย่อยที่แตกต่างกันเพื่อให้คุณอย่างน้อยสามารถดูวิธีการหลายเครื่องกำลังทำงานอยู่ คุณยังจะต้องตั้งค่าเครื่องของคุณเกี่ยวกับสัญญาเช่าระยะยาวหรือไม่ จำกัด เช่า DHCP

วิธีการเรียกใช้งานในคนงาน

นี้เป็นพื้นที่ที่น่าสนใจและมีวิธีการที่ถูกต้องหลายประการสำหรับการประมวลผลในงานของผู้ปฏิบัติงาน ที่นี่ฉันเพิ่งจะหารือของทั้งสองที่ชัดเจนที่สุด :

  • ตลอดการเรียกใช้สคริปต์ : สคริปต์ไม่ว่าจะเป็นเชลล์สคริปต์หรือสคริปต์ PHP จะดำเนินการเมื่อเมื่อผู้ปฏิบัติงานและการทำงานเป็นส่วนหนึ่งของห่วงอนันต์ ผมเคยลดวิธีการนี​​้เป็นหนึ่งในความผิดพลาดของสคริปต์และอาจแรงงานของคุณจะหยุดทำงานโดยไม่ต้องเรียงลำดับจากการแทรกแซงของบางอย่าง
  • การดำเนินการตามสคริปต์ cron : ทุกนาที X cron daemon kicks ปิดการเรียกร้องให้สคริปต์ของคุณที่จะได้รับสิ่งที่จะ โดยไม่ตรวจสอบบางส่วนนี้อาจนำไปสู่​​การทำสำเนาหลาย ๆ คนงานของสคริปต์ของคุณทำงาน

คือการตัดสินใจของฉันจะไปกับ cron ซึ่ง kicks off สคริปต์เชลล์ทุก 10 minutes. เชลล์สคริปต์ของฉันทำงานต่อไปนี้ :

  1. ได้รับรายชื่อกระบวนการและ grep นี้สำหรับ'php' หากไม่พบแล้วดำเนินการต่อ
  2. เรียกรหัสงานของคุณในกรณีของฉันนี้จะเป็นสิ่งที่ตาม PHP
  3. สคริปต์ทำงานเสร็จสิ้นการทำงานของ
  4. พร้อมที่จะไปอีกครั้งในการโทรที่เหมาะสมต่อไป

สคริปต์ทุบตีฉันดูเหมือนสิ่งที่ต้องการดังต่อไปนี้

  #! / bin / sh
 ถ้า PS ขวาน grep | grep - V | grep PHP> / dev / null
 แล้ว
     echo"งานอยู่ในขณะนี้การประมวลผลที่ออก"
 อื่น
     echo"งานไม่ได้ทำงานอยู่เริ่มต้นตอนนี้"
     yourJobProcessingScript.php PHP
 Fi 

: หมายเหตุ : สะท้อนเกือบจะไม่มีจุดหมายอย่างสมบูรณ์ แต่อาจช่วยให้คนถัดไปที่มาพร้อมที่จะลองและแก้ไขได้

ที่สรุปการตั้งค่าของเครื่องเสมือนคนงานรวดเร็วง่ายและง่ายต่อการคัดลอกไปยังแต่ละชิ้นใหม่ของฮาร์ดแวร์ที่ได้รับ 'ฉลาด'ของระบบตารางที่จริงๆไม่ได้อยู่ในมองเห็นระบบปฏิบัติการทุกคนจะทำอย่างไรกับรหัสที่สร้างขึ้นเพื่อประมวลผลงาน, การตั้งค่างานและในการทำให้แน่ใจว่างานที่จะทำงานเมื่อเหมาะสม (เช่นเมื่อโฮสต์ที่ไม่ได้ใช้งาน )

การตั้งค่า Windows ให้ Initialise แรงงาน

งานแรกคือการทำงานออกคำสั่งที่จำเป็นในการเรียกใช้เครื่องเสมือนจากบรรทัดคำสั่งหน้าต่าง ถ้าคุณได้ติดตั้ง VirtualBox ในตำแหน่งเริ่มต้นและคุณได้ชื่อของผู้ปฏิบัติงาน GridMachine ของคุณแล้วคำสั่งที่จำเป็นในการโหลดขึ้นของผู้ปฏิบัติงานของคุณ :

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

อย่างไรก็ตามการเรียกใช้สคริปต์ในสถานะ'โง่'เราจำเป็นต้องใช้ :

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

นี้จะเริ่มเครื่องเสมือนได้โดยไม่ต้อง GUI และอนุญาตให้บันทึกสถานะได้อย่างสง่างาม อาร์กิวเมนต์ที่สองจะปิด RDP ดังนั้นจึงไม่มีความขัดแย้งกับหน้าต่าง RDP, หรือให้ข้อความเกี่ยวกับการฟังในพอร์ต 3389. ชื่อเครื่องเสมือนเป็นกรณีที่สำคัญ!

ต่อไปเราจะต้องตั้งค่า Windows ให้เตะออก VM คนงานของเราเมื่อเครื่องมีการใช้งาน การทำเช่นนี้ (ใน Windows XP) คุณจะต้องไปที่ Start --> Programs ทั้งหมด --> Accessories --> เครื่องมือระบบ --> งานที่กำหนดเวลาดังนี้

งานที่กำหนดเวลา

คลิกถัดไปที่'เพิ่มในการจัดตารางงาน'ตามด้วยเรียกดูเพื่อเพิ่มโปรแกรมที่กำหนดเอง นำทางไปยังสคริปต์ VBoxManage ของคุณและคลิก OK กำหนดการงานของคุณสำหรับตัวเลือกใด ๆ (เราจะเปลี่ยนแปลงนี้ในนาที) และต่อเนื่อง หลังจากที่การกระโดดข้ามหน้าจอถัดไป Windows จะถามคุณที่คุณต้องการเรียกใช้งานนี้ผมขอแนะนำอย่างใดอย่างหนึ่ง'Administrator'หรือการสร้างผู้ใช้สิทธิพิเศษใหม่ โปรดจำไว้ว่าเราไม่ต้องการที่จะแทรกแซงกับพนักงานบัญชีมาตรฐานในเครื่องที่จุดใด ๆ คลิกถัดไปและตรวจสอบการแสดงตัวเลือกขั้นสูงสำหรับงานนี้

ไปยังจุดสิ้นสุดของช่องเรียกใช้เพิ่มสตริงของเรา startvm GridMachine'และให้แน่ใจว่าการทำงานที่เฉพาะเมื่อมีการบันทึกไว้ในที่เหลืออยู่ unticked เยี่ยมชมงานตามกำหนดเวลาต่อไปและการเปลี่ยนแปลงตารางการเลื่อนลงไปที่ตัวเลือก'เมื่อว่าง'ให้เลือกจำนวนของเวลาที่คุณต้องการเครื่องที่จะว่างก่อนที่จะย้ายไปยังแท็บถัดไป

สุดท้าย untick ตัวเลือกรัฐที่หยุดงานถ้ามันได้รับการทำงานจำนวนครั้ง แต่ไม่ติ๊กในตัวเลือกที่จะหยุดงานในกรณีที่เครื่องไม่ได้ใช้งาน

ตารางเวลา

ที่มันแล้วสำหรับการติดตั้งโฮสต์ Windows!

ข้อมูลอย่างย่อ

ในส่วนนี้เราได้ตั้งค่าเป็นเสมือนเครื่องเพื่อทำหน้าที่เป็นผู้ปฏิบัติงานเช่นเดียวกับวิธีที่เราโทรและรันสคริปต์การประมวลผลงานของเรา (สำหรับตัวเองสคริปต์ PHP) จากที่นี่เราดูที่วิธีการตั้งค่าสำเนาของ Windows จะเริ่มต้นขึ้นเครื่องเสมือนในโหมดไม่มีความคิดเมื่อคอมพิวเตอร์กลายเป็นไม่ได้ใช้งานและบันทึกสถานะของมันเมื่อผู้ใช้ดำเนินการต่อการใช้งานของเครื่องของเรา หวังว่าที่จุดนี้คุณจะเห็นวิธีง่ายๆก็คือการตั้งค่าระบบดังกล่าวและมีอาการคันที่จะได้รับการทดสอบบางอย่างไปด้วยตัวคุณเอง

เวลาถัดไป

ใน ส่วนที่ 4 เราจะดูที่การใช้เครื่องมือเพื่อให้แน่ใจว่าคุณใช้รุ่นล่าสุดของแหล่งที่มาของรหัสและข้อมูลเพื่อที่ว่าผลที่ได้รับมักจะขึ้น - to - date ด้วยข้อมูลทางธุรกิจล่าสุดและตรรกะ













ธีมโดยพาโนรามา Themocracy

12 ผู้เข้าชมออนไลน์ขณะนี้
7 แขก, 5 บอท, 0 สมาชิก
ผู้เข้าชมสูงสุดวันนี้ : 23 ที่ 05:40 UTC
เดือนนี้ : 23 ที่ 24-08-2011 05:40 UTC
ปีนี้ : 130 ที่ 28-03-2011 10:40 UTC
เวลาทั้งหมด : 130 ที่ 28-03-2011 10:40 UTC