הודעות מתויג: באתר

רשת המחשוב במשרד באמצעות סביבות וירטואליות - חלק 4

על ידי , יום שישי 4 דצמבר 2009 11:59

הקדמה

אני עובד בחברה שבה גמר עבודות אצווה רבים עיבוד מיליוני רשומות של נתונים מדי יום, חשבתי לאחרונה על כל מכונות יושבים בכל יום לעשות כלום במשך כמה שעות. האם לא יהיה זה טוב אם אנחנו יכולים להשתמש במכונות האלה כדי לחזק את כוח העיבוד של המערכות שלנו? במערכה זו של מאמרים אני מסתכל על היתרונות הפוטנציאליים של העסקת המשרד לרשת באמצעות סביבות וירטואליות.

ב חלק 3 יצרנו מכונה לעיבוד הוירטואלית שלנו להגדיר את Windows מכונות להיות פעיל במשרה עובדים.

הפעלת הקוד האחרונה

באופן בלתי נמנע לאחר יצירת ההיגיון עובדים העסק שלך ישתנה, באגים יימצא, קוד מהיר יותר ויעיל יותר יופק ובכך משאיר העובדים שלך ישבו סביב עיבוד נתונים באמצעות קוד מסריח הישן . כיצד, אם כן אנחנו להבטיח כי אנחנו תמיד להשתמש בגירסה העדכנית ביותר של סקריפטים עיבוד שלנו?

יש כמה דרכים פשוטות קל מאוד שנוכל לעשות את זה, החוכמה, לעומת זאת, היא להפחית את כוח העיבוד ואת תעבורת הרשת בהשגת זה. בואו נתחיל עם הפשוטה של ​​פתרונות ולשפר אותו לאט על כמה חזרות.

השיטה הראשונה יהיה פשוט להתחבר לשרת שלנו מלאה העבודה (דרך סמבה, FTP, או דומה) ולמשוך למטה את הגירסה האחרונה של הקוד. לא מאוד יעיל, אבל זה יעשה את העבודה. מאפשר לשפר את זה קצת, מה דעתך על יצירת סקריפט rsync ושימוש בכל פעם במקום? לחלופין מה לשים סקריפט האחרונה שלנו עיבוד לתוך חתרנות לבדוק את הקוד בתחילה ואז פשוט לעדכן את הקוד שלנו על כל סיבוב ( SVN עדכון )?

בסופו של דבר אנחנו יכולים בסופו של דבר עם סקריפט bash (המכונה ע"י cron כל 10 דקות) שנראה פשוט כמו זה:

  #! / Bin / sh
 אם ps ax | grep-v grep | grep php > / dev / null
 אז
     הד "עבודה בימים אלו עיבוד, יציאה"
 אחר
     הד "איוב אינו פועל, להתחיל עכשיו"
     cd / נתיב / ל / עבודה / העתקה
     עדכון svn
     PHP yourJobProcessingScript.php
 Fi 

עכשיו אנחנו יכולים להיות בטוחים כי עם כל סיבוב אנחנו בהחלט מפעיל את הקוד האחרון. אנו מבטיחים את זה על ידי עדכון בסיס הקוד שלנו כל פעם שאנחנו מבצעים לאורך והפחתת תעבורת הרשת על ידי היחידה להעביר את ההבדלים קבצים ברשת שלנו.

בהגדרת ההפגנה שלי, עשיתי בדיוק כמו לעיל. Subversion הותקן על השרת שלי את העבודה עיבוד פשוט משך את הקוד האחרונה של סניף "הפועל" באמצעות "svn עדכון". אני גם הוסיף תג מספר הגירסה עיבוד לתסריט שלי שהוחזרה באתר כחלק להחזיר תוצאות. בדרך זו יכולתי לראות את הקוד שלי היה להיות מעודכן בכל פעם העתקתי המטען שלי לתוך כלומר הסניף עובד שאני בהחלט הפעלת ה-script עיבוד האחרונה.

באמצעות הנתונים האחרונים

אם עיבוד העבודה שלך עושה שימוש במקורות נתונים ואז בשלב מסוים אלה הולכים להיות מעודכן מדי. אלא אם כן אתה קורא מקורות הנתונים באופן תכוף מאוד אתה הולך להציף את הרשת עם התנועה מיד עם העובדים שלך יתחילו להופיע להביא הכל כדי קיפאון. הפתרון שלי החלטתי שאני רוצה לעבור מקורות הנתונים שלי מסביב עם מכונות וירטואליות שלי.

החזיקו את הסוסים שם! מה אם מקורות הנתונים שלי הם ענקיים? טוב זה באמת מקרה של כמות הנתונים אנחנו מדברים? זה יכול להיות יותר חסכוני להתקין כונן קשיח גדול יותר נוספת לתוך כל מכונה מאשר לרכוש שרת עיבוד נוסף. זו שאלה של תקציב הוא עד העסק להחליט. זה אולי מקורות הנתונים שלך כל כך גדולה שלו אינו עומד על הפרק רק כדי לשמור על כמות הנתונים במכונות הפועלות שלך. אם כך מה היית עושה? גם אנחנו יכולים להסתכל קורא שרת הנתונים המקומי, אבל זה עלול לגרום לבעיות עם הרשת. במקרה זה מערכת רשת כגון זה עשוי להיות מציאותי כוללים בסביבת המשרד שלך. ייתכן גם כי אתה יכול לבדוק את אסטרטגיות חלופיות הפועלים, למשל רק קורא לעובדים 08:00-06:00 כל לילה ו / או נתונים ויסות בקשות המקור.

הלאה נניח כמות הנתונים שלנו מקורות 100GB של נתונים. ובכן כן, זה לא מעט נתונים כדי לנוע ברשת על העדכון. איך היינו להבטיח שיש לנו את העותק האחרון של הנתונים במקרה זה? Rsync היא אפשרות, אבל באופן אישי אני חושב על ידי הרצת קוד עדכנית הנתונים בשרת שלך עבודה עיבוד להגדיר זאת כמאסטר בשכפול (יומן עם סל יפה ארוכה) יכול להיות כל הכבוד:

שכפול על ידי הגדרת כל אחד העובדים שלך עד כעבד את השליטה עדכונים עבודה שרת למקורות נתונים שלך לטפטף יפה לעובדים שלך בלי גידול עצום בפעילות הרשת (כלומר, אלא אם כן אתה מבצע עדכון נתונים ענק וכל העובדים שלך בעיטה בבת אחת). זו יתרונות על פני rsync, כי אתה לא מקבל הפסקה ארוכה לפני כל עבודה, גם את העדכונים של מסדי נתונים, MySQL daemon על העובד שלך יהיה לעדכן את הנתונים בזמן עיבוד ממשיך.

כך אני מגדיר את שרת ההפגנה שלי. כדי להגדיר שכפול עקבתי אחרי המדריך באתר MySQL ( הגדרת שכפול ) ותוך 20 דקות היה לי עובד inital שלי שכפול השליטה העבודה במערך השרתים. עבור כל עובד נוסף את ההגדרות שכפול תהליך עבד בכל פעם כאשר VM הועתק.

תקציר

בחלק זה של המאמר יש לנו הסתכל כמה קל ונטול כאבים זה היא לשמור על קוד העיבוד שלך מעודכן על ידי using rsync או subverion (SVN) לעשות את העבודה ולהפחית את תעבורת הרשת על time. אותו דנו גם כמה כדי לשמור על מידע ממקור הנתונים עד עדכני, לאפשר לה לטפטף לכל אחד העובדים שלך. כך אנו האזור להבטיח לנו לשמור על קשר עם לוגיקה עסקית ומידע במערכת שלנו המשרד לרשת. יש שתהא אינספור חלופות לביצוע משימות אלה, אבל כאן היו שתי דוגמאות פשוטות כדי להראות עד כמה קל הפתרון הוא להשיג.

בפעם הבאה

בחלק האחרון של סדרה זו, בשם בצדק חלק 5 , נדבר על פריסת מערכת זו. אני לסכם את מה שנלמד ומה הצלחתי ליצור.

רשת המחשוב במשרד באמצעות סביבות וירטואליות - חלק 1

על ידי , יום שישי 4 דצמבר 2009 11:23

הקדמה

אני עובד בחברה שבה גמר עבודות אצווה רבים עיבוד מיליוני רשומות של נתונים מדי יום, חשבתי לאחרונה על כל מכונות יושבים בכל יום לעשות כלום במשך כמה שעות. האם לא יהיה זה טוב אם אנחנו יכולים להשתמש במכונות האלה כדי לחזק את כוח העיבוד של המערכות שלנו? במערכה זו של מאמרים אני מסתכל על היתרונות הפוטנציאליים של העסקת המשרד לרשת באמצעות סביבות וירטואליות.

כמו PHP Developer אני הולך להשתמש בכלים שאני משתמש בכל יום, כלומר לינוקס, mySQL , PHP, VirtualBox ו חתרנות (SVN). עם זאת אני מקווה במדריך זה יתאימו לשפות וטכנולוגיות אחרות באותה מידה.

הפתרון אני מספק יתבסס באופן רופף מאוד על סוג של עיבוד היינו צריכים להשיג זאת זה לא יכול להיות נכון את המאמר במלואו כפי שאני אשנה דברים לשם הפשטות, או לייצר תרחישי השימוש מעניינים יותר.

אלה סביבות וירטואליות ירוצו על מחשבי Windows מאז זה מה שרוב משרדי לרוץ. עיבוד כי מכונות משרדיות לא אמור להפריע הצוות באמצעות מכונות אלה, יש לא דורשים תחזוקה ליד המכונה, ולהיות לפריסה בקלות מחשבים חדשים כפי שהם מתפרסמים. כמו כן, מכונות וירטואליות חדשות לא דורש שום הגדרות נוספות כמו זו מקטינה באופן משמעותי את יכולת הרחבה וקלות שבו מערכת ברשת ניתן להרחיב.

למה לפרוס רשת מחשוב Office?

ראשית ייתכן שאתה חושב, למה לא פשוט להשתמש מחשוב ענן משאבים כגון פלטפורמת EC2 של אמזון ? ובכן הסיבות יכולה להיות מספר, למשל:

  • אתה לא להפקיד נתונים מסוימים לסביבה מחשוב ענן
  • אתה לא יכול לשים נתונים מסוימים לסביבת מחשוב עננים מסיבות משפטיות (נתונים כגון: לעזוב את הארץ), פוטנציאל מסיבות משפטיות, כגון רשומות של ביטוח הבריאות הלאומי.
  • אתה רוצה לשמור על יחידות עיבוד שלך קרוב ויש להם שליטה מלאה על החומרה מדי
  • אתה לא צריך את הכספים הפרויקט לפעול במקרים ענן
  • למשרד שלך אין חיבור לאינטרנט, ולכן לא ניתן להשתמש בו משאבים ענן
  • אתה לא אוהב גשם, עננים מציע גשם, ולכן אתה שומר הרחק

אני בטוח הרשימה יכולה להמשיך, אבל אני חושב שזה מספיק לעת עתה.

היתרונות של רשת מחשוב משרד

ובכן, מאפשר לעשות כמה מתמטיקה (ו בסגנון פיזיקה נכון מאפשר לבצע כמה הנחות גורפות). דמיינו לעצמכם שאתם יכולים עיבוד גדולה שרת בשרני לרוץ 100 משרות ביום. במשרד שלך יש לך 50 מחשבים אשר פעיל 16 שעות ביממה, כל המכונות האלה הוא 10% חזק כמו סבר עיבוד בשרני שלך. (כל התוצאות כאן מעוגלים לזלזל להגדיל את הביצועים).

אז, 1 מכונת * כוח 10% * 2/3 זמן = 0.067 כלומר 1 עיבוד שולחן העבודה בזמן המתנה יכול לעבד 6 משרות מלאות ביום.

אם אתה עכשיו בקנה מידה זה את זה לוקח 15 שולחנות עבודה סרק לעבד עבודות כמו רבים ליום כשרת עיבוד הראשי עושה.

אז במשרד מדומה שלנו של 50 מכונות נוכל להגדיל את כוח העיבוד שלנו משרת 1 עד 4 שרתי עיבוד מלא, או שאנחנו יכולים לעבד 400 מקומות עבודה ליום במקום 100.

שימו לב, להשקעה שום חומרה חדשה החברה גדל רק עיבוד אצווה שלה קיבולת 4 פעמים! פוטנציאל אתה הולך להגדיל את צריכת החשמל שלך, אבל מסביבות משרדים ברוב הייתי מכונות נותרים בדרך כלל על בן לילה בכל מקרה, אז אתה יכול לראות את זה כיוזמה ירוק.

יתרונות נוספים גם אומר כי השקעה חדשה (או עדכון) שרתי עיבוד יכול להתעכב אם מכונות משרדיות שלך מספיקים, וכי תוך כדי לשפר את הכוח של מכונות משרדיות שלך לרשת במשרד שלך הופך להיות חזק יותר באופן אוטומטי.

טכנולוגיות

מה אתה צריך? (או יותר נכון מה אני משתמש):

  • משרד מכונות סרק (במקרה שלי המחשב הנייד הישן חילוף Windows XP)
  • VirtualBox (או תוכנת לקוח וירטואליזציה)
  • מחשב וירטואלי עם PHP, MySQL running פועל לחתוך את מערכת ההפעלה, אני מתקשר שרתים אלה רפויות שלי :)
  • דרושים להפעלת
  • שרת העבודה (יכול להיות אחרת מכונה וירטואלית אי שם)

משרות אופייניות

סוגי עבודות כי המערכת נועדה לפעול הוא כדלקמן:

  • המערכת מקבלת רשימה של נתונים שעליהם אנו צריכים להתאים ולחזור תוצאות
  • ההתאמה כוללת בדיקה / חיפוש מספר (סטטי למדי) מקורות נתונים
  • תוצאות ממקורות נתונים עשויים לדרוש הוכחה נוספת, מיזוג, בדיקה של מקורות נתונים נוספים בעקבות תוצאות
  • הנתונים חזר עם רשומות תואמות, תוקף מלא ומעובד
  • כל רשומה בתוך העבודה אינה תלויה בשאר

אז בעצם אנחנו מסתכלים ריצה עבודות הדורשות שילוב של מסד נתונים חיפושי וחלק גריסת מספר, תרחיש טיפוסי למדי בסביבה עסקית.

פתרונות הרשת אינם רק יתרון לעיבוד עבודות מסוג זה. ביסודו של דבר, כל תהליך אשר ניתן לפצל ליחידות עצמאיות ניתן להפעיל במקביל. לראות את ויקיפדיה לדוגמאות ומידע נוסף: מחשוב גריד , אבל כמה דוגמאות מפורסמות הם SETI @ Home ו BIONC . יש מסגרות להפעלת רשתות מחשוב, ואלה בהחלט שווה להסתכל לתוך.

מה נשיג?

בסופו של מאמרים אלה אני מקווה להראות כי פריסת הרשת המשרד לא צריך להיות רב או יקר מאוד זמן. אני הולך לדבר:

  • התקנת מערכת בקרת עבודה, תצורת עבודה
  • יצירת מכונה וירטואלית עיבוד מתאים
  • כיצד להגדיר את המערכת על מחשב חלונות
  • הבטחת אתה משתמש קוד האחרונים נתונים
  • הפריסה בהשוואות
  • במבט קדימה

אני אהיה בבניין (אישור בניתי, אז כתב את זה) יישום לדוגמה לבחון את המושגים במחשב המקומי באמצעות Windows XP ו 'GridMachine "שלי מכונה וירטואלית. השליטה התפקיד שלי שרת יהיה מכונת העיקרי שלי אשר פועל פדורה 11 .

זה בשום אופן לא התכוון להפגין מערכת חזקים באופן מלא עובד, שלו נועד יותר הפגנה ודיון מראה כי הדברים האלה ניתן להשיג בחלל זמן קצר יחסית ובעלות קטנה. אתם מוזמנים לשלוח לי הערות, תיקונים או שיפורים ואני אעשה כמיטב יכולתי כדי לשמור את המאמר הזה מתעדכן בהתאם.

בפעם הבאה

ב חלק 2 אני נתחיל בבחינת מערכת הבקרה העבודה, לבדוק כיצד העבודה צריך להיות מוגדר על מנת להשיג הכמות הגדולה ביותר של עיבוד תוך הקפדה כי כל עבודה מעובד ללא יוצא מן הכלל.

רשת המחשוב במשרד באמצעות סביבות וירטואליות - חלק 2

על ידי , יום שישי 4 דצמבר 2009 11:23

הקדמה

אני עובד בחברה שבה גמר עבודות אצווה רבים עיבוד מיליוני רשומות של נתונים מדי יום, חשבתי לאחרונה על כל מכונות יושבים בכל יום לעשות כלום במשך כמה שעות. האם לא יהיה זה טוב אם אנחנו יכולים להשתמש במכונות האלה כדי לחזק את כוח העיבוד של המערכות שלנו? במערכה זו של מאמרים אני מסתכל על היתרונות הפוטנציאליים של העסקת המשרד לרשת באמצעות סביבות וירטואליות.

ב חלק 1 נתתי סקירה כללית של מערכת טכנולוגיות אני יהיה להשתמש גם כפי שנדון כמה סיבות אפשריות למה אתה רוצה ליצור רשת Office.

עבודה ובקרה

אם אתה הולך לרוץ מקומות עבודה אז אתה הולך צריך קצת דרך לנהל אותם. השליטה תפקידך במערכת (בשרת העבודה שלך) צריך להיחשב ממש טוב לפני עוד ניסיון להפעיל רשת Office. אז ראשית, מה הן משימות עבור מערכת בקרת עבודה:

  • לחלק משרות, לבקשת העובדים
  • תגיד עובדים איזה סוג של עבודות לרוץ
  • מעקב אחר עבודות
  • להבטיח כי עבודות מנוהלים רק פעם אחת
  • לספק נתונים עבודה לעובדים, או לפחות אומר להם איפה ניתן לקבל אותו

המערכת גם צריכה להיות להרחבה, פתרון שעובד בינתיים במקרה אחד ניתן להאריך להריץ מספר סוגים של מקומות עבודה כעסק רואה שווה בפתרון הרשת. לדוגמה, מקומות עבודה יכול לקבל סדרי עדיפויות, יותר מסוג אחד העבודה יכולה להתקיים (כלומר מספר בסיסי קוד), בסופו של דבר אתה יכול אפילו להריץ מספר מכונות עובדים שונים כי הם אופטימיזציה עבור כל סוג של עבודה (אם כי אין להתרחק העובד גנרי "הרעיון). תמיד מנסה לחשוב על העתיד בעת פיתוח מערכות, ראייה לטווח קצר יכול להוביל לתסכול ארוך טווח זמן הפיתוח גדל.

שרת העבודה

אנחנו הולכים צריך מקום לשלוט עבודות שלנו, זה אמור להיות במערכת רק ברשת שלך, כי יש מאתר משאבים קבוע, להיות כתובת IP, שם המחשב המארח, כתובת האתר (שימוש פנימי DNS), וכו 'זה בגלל העובדים צריכים לדעת איפה לחפש עבודה, עובדים צריכים למצוא עבודה מלאה במערכת (לא מערכת בקרת למצוא עבודה לעובדים).

שרת העבודה עצמה לא ממש יש משימה מסובכת (במערכת בסיסית בכל אופן), זה צריך לאחסן רשימה של מקומות עבודה, מחלקים עבודות, לקבל תוצאות, ולאחר מכן לאחסן אותם אחזור מאוחר יותר. איך חלקים אלה ("יד ג'ובים" כגון) מוגדרים יכול להיות מאוד בסיסי. מאוחר יותר אנו יכולים להרחיב את המערכת לכלול ממשק הניהול להוסיף, לערוך, למחוק, להשעות את העבודות, אבל זה מעבר התרגיל הזה.

אין שום סיבה שהיא אז שרת העבודה שלך לא יכול להיות מפעיל וירטואלי בתוך השרת עיבוד הראשי בתנאי שזה לא לייבש יותר מדי משאבים ממנו. שרת העבודה עם זאת צריך זמינות גבוהה, אם הוא יורד ביום שישי בערב אתה הולך לאבד את כל סוף השבוע של עיבוד, באופן פוטנציאלי עולה לך כמה שבועות בשווי של זמן עיבוד (לעומת שרת עיבוד הראשי בלבד) . אולי כדאי לשקול לשים שרת העבודה שלך על הסביבה עומס מאוזן עבור זמינות גבוהה.

הגדרה בסיסית

התקנה בסיסית של שרת העבודה שלנו תכלול את מה שאני קורא את אחד השרתים הרפוי שלי (כלומר Nux לי, מ 'ySql, P-HP). הקוד רץ על עובדים תיאה יהיה ממש להבין מה זה יכול לרוץ עבודות על ידי אינטראקציה עם מסדי נתונים עבודה עם שליטה במערכת. אחר כך נוכל ליצור שירות אינטרנט ולמעשה לחלק משרות ולא צורך העובדים לעשות את העבודה הקשה עצמם, אבל בינתיים נמשיך להשתמש בעיקרון KISS (שמור את זה פשוט, טיפש!).

אז, מאפשר ליצור שלושה של MySQL שולחנות להתמודד עם מקומות עבודה. אלה יהיו `עבודות`, `jobRecords`, ו `jobResults`.

עבודות השולחן כאן אני משתמש ב SQL החברים חלופה מעט גדולה phpMyAdmin רק כי קל יותר שלה להתקין על CentOS (לאחרים לראות: 10 חלופות הגדול ל phpMyAdmin )

טבלה זו מכילה 5 שדות פשוטים,

  • מק"ט: לזהות את העבודה
  • שם: יכול להיות הפניה ללקוח, או כל מספר מזהים אחרים
  • סטטוס: אתה צריך לדעת איפה העבודה נמצאת, למשל
    • 0: לא התחיל
    • 1: הרים
    • 2: הושלם
  • started_by: מי התחיל לעשות את העבודה? פעולה זו אינה הכרחית לחלוטין אבל הוא נחמד שיש. הייתי מציע מעקב עובדים לפי כתובת ה-IP שלהם ברשת
  • started_at: מתי העובד להתחיל את העבודה? על ידי מעקב אחר עבודות שלא הושלמו בתוך פרק X זמן אנחנו יודעים שאנחנו צריכים להרים את העבודה שוב ולהתחיל עיבוד על ידי עובד אחר. עובדים יכולתי להפסיק עיבוד / go offline עבור כל מספר סיבות, הפסקת חשמל, קריסה, אובדן ברשת, וכו '

קל איך את הטבלה ניתן יהיה להרחיב עם כמה שדות נוספים, כדי לאפשר מעקב אחר נתונים סטטיסטיים, זמן לסיים את הטור כדי לראות כמה זמן עבודה לקח, מונה כדי לראות כמה עובדים הרים את העבודה (כמובן זה צריך נוטים 1), עדיפות עבודה, הרשימה יכולה להמשיך עוד ועוד. בתרחישים עבודה מורכבות יותר ניתן יהיה להגדיר כמה זיכרון העובד היה צריך גישה (ולכן משתמשים רק עובדים מתאימים), או אפילו איזה סוג של העובד יהיה צורך.

מאפשר להוסיף כמה עבודות לדוגמה כמה:

לדוגמה מקומות עבודה

הטבלה הבאה שוב הוא די פשוט להבין, אלה הם נתוני עבודות שלנו. הם קשורים לשולחן עבודות העיקרי של טור `jobs_id`. להפוך את השולחן זה מאוד תלוי את הנתונים שאתה צריך לספק לעובדים שלכם, מאפשר להפוך דוגמה פשוטה מאוד, שם יש לנו ארבעה עמודים:

  • מק"ט: ID של הרשומה
  • השם: שמו של אדם
  • כתובת: כתובת של איש
  • jobs_id: מזהה את העבודה כי זה שיא קשור

הטבלה השלישי והאחרון מורכב בטבלת התוצאות, יש לו דומה לפצות כמו השולחן שלנו רשומות, ועם תוספת של כמה עמודות יכול להיות חלק של הטבלה תקליטים:

  • job_record_id: קישור תוצאה לשולחן העבודה
  • התוצאה: הנתונים התוצאה

... וזה כל מה שאתה צריך עבור עבודה! (אם כי ברמה בסיסית מאוד) במקרה שלי אני הצביע על שולחן אחר שבו הנתונים שלי לתהליך נמצא, אבל זה יכול היה באותה קלות הקובץ, הפרמטרים להפעיל קוד סימולציה, מה שתרצו.

בחירת עבודה

כאמור, העובדים יעשו וניהול העבודה שלנו אצלנו עכשיו, אז כל מה שאנחנו צריכים באמת לעשות זה למצוא עבודה, כי צריך עיבוד ולקבל את המידע. איך היינו עושים את זה? ובכן לבחור בחירה העבודה שלנו קריטריונים ולחפש עבודה, ב-SQL עשיתי את הפעולות הבאות:

  1. קח לאף משרה שאינם מסומנים מלאה אלא עובד שלנו לאפס אותם (תחליף ME__ __ עם מזהה, הקלה ביותר תהיה כתובת ה-IP):
     עדכון ג `עבודות` סט `מצב` = 0 WHERE `מצב` ו `= 1 started_by '= __ ME__; 
  2. באמצעות הבחירה שלנו עבודה קריטריונים, בחר את העבודה ולספר מערכת בקרת שהעובד הזה היא להתמודד עם זה:
      עדכון ג `עבודות` סט `מצב` = 1 `,` started_by = __ ME__, `started_at` = NOW () WHERE `מצב` = 0 או
     (`מצב` ו `= 1 started_at`> DATE_SUB (NOW (), שעה מרווח X)) ORDER BY `id` ASC; 

    מקומות עבודה על ידי גרירה שלא חזרו תוצאות בסכום X זמן אנו מבטיחים כי כל העבודות מנוהלות במקרה של עובד מתרסק או הנפקדות.

  3. לאחר מכן לתפוס את משרות פרטים ואחריו את הרשומות עצמם:
      SELECT * FROM `עבודות` WHERE `started_by '= __ ME__ LIMIT 1;
     SELECT * FROM `job_records` WHERE `id` = __ JOBID__; 

עם סיום העבודה אנו להוסיף רשומות התוצאות שלנו ולסמן את העבודה הושלמה. זכור כמקום עבודה יכולים להשעות / לחדש בכל עת לאפשר חוסן חלק בתסריט. זה יכול להיות שהמשימה משהה בחצי הדרך לעדכן את מערכת בקרת עבודה, אז בודקים את מספר הרשומות בעבודה ואת מספר התוצאות שנשמרו חזרה למערכת הבקרה העבודה תהיה צעד נבון.

בנוסף, בעוד זה מדגים כיצד ניתן לבחור עבודות והצליח ממסגרת SQL, השאילתה אתה צריך באמת להיות הפשטה מלאה העבודה שלך, כך שאם אתם מחליטים לעבור באמצעות שירות אינטרנט, מערכת קבצים המבוססת על XML , או אחרת מספר מערכות זה לא ישפיע על קוד מעליה.

תצורת העבודה

ההיבט הבא הוא לשקול גודל העבודה ותצורה. על ידי משחק עם הגדרות התפקיד ניתן על איזון מעולה בין מהירות, שכפול התהליך, ואמינות. קח כמה תרחישים of הזוג:

  1. משרות לקחת 1 כל יום לרוץ: משמעות הדבר היא כי העובדים שלך צריך 15 ימים כדי לעבד את כל העבודה (זוכרים 10% מכוח עבור 2/3rds של זמן). זה בבירור לא תצורה חכם, גודל התפקיד שלך הוא גדול מדי! זה היה לוקח לפחות כפול זמן כדי לקבל את העבודה מעובד לעובד הראשוני צריך ללכת נפקד (זמן להרים את זה כי לא חזר התוצאה בתוספת הזמן עיבוד מחדש). באידיאל שיהיה לך לפחות 1 משרה מלאה פינה בקלות עד סוף כל תקופה המתנה ארוכה, כך אתה שומר את העבודות מתקתקות על ובמקרה הרע במקרה העבודה היה לוקח יומיים לתהליך 1 צריך ללכת חסר.
  2. משרות לקחת 1 דקה לרוץ: משמעות הדבר היא כי העובדים שלך לוקח בערך 15 דקות כדי להפעיל את כל העבודה. בעוד בתחילה זה עשוי להיראות אידיאלי, אתה מקבל עיבוד עבודה נוספת במהלך זמן ארוחת הצהריים, הפסקות קפה, פגישות, וכו 'בתרחיש זה מכניס למתח על תחומים אחרים של המערכת ומציג בעיות משלה. לדוגמה, ראשית יחס התקנה / עיבוד שלך הזמן הוא הולך ישר, ולכן מאבד את יעילות המערכת. הרשת יהיה מידע כל הזמן זרימת עבודה לצוות עובדים שונים מתסכל שהם דונג יום שלהם לעבודת יום. אתה גם הולך לשים את הלחץ יותר על השרת שלך עבודה עיבוד כפי שהוא צריך לחלק אוכל המון המון חתיכות קטנות של עבודה על בסיס קבוע. לבסוף, במצב זה אם שרת העבודה שלך יורד שאתה הולך ליצור יומן בחזרה עצום של עבודות שלא הושלמו ואילו עבודות גדולות יותר יכול המשיכה של עיבוד מאושרים ולא שיערו כי שרת העבודה חווה קשיים.

במציאות לא תהיה תצורת אידיאלי 1 להתקנה ברשת שלך, הרבה תלוי את המשאבים הזמינים, סוגי עבודה, אספקה ​​דרישות התפקיד זמן, יכולת הרשת, וכן הלאה. עם זאת כמה קווים מנחים יהיה:

  • משרות גודל כך כל עובד יכול לעבור לפחות 3-4 מקומות עבודה בתקופה של 15 שעות (זמן רב תקופת המתנה סביר)
  • לשחק עם גודל העבודה כך זמן ההתקנה הופך זניח למדי לעומת זמן עיבוד (אם נזכור את הנקודה לעיל).
  • אם העבודה לא הושלמה בסכום כפול של זמן (אולי פחות) אתה מצפה להשלים אותה להניח כי נפקד הלך שלה להתחיל לעבד אותו עם עובד נוסף. זה אומר שאתה יכול לחכות עד אורך שלוש פעמים הרגיל של העבודה על זה כדי להשלים (אולי יותר, אם את העבודה לאחר מכן נכשל). אולי כדאי לצמצם את הזמן הזה, אבל להיזהר שלא להפחית את זה כמה שאתה יכול להתחיל לשכפל משימות עיבוד על בסיס קבוע.
  • משרות אמורה להיות בלתי תלויה בדרישות מחוץ ככל שניתן. שרת העבודה, למשל, צריך רק ליצור קשר עם ההתחלה והסיום של כל עבודה.
  • אל להרוות את הרשת, זה יהיו שתי השפעות שליליות, צוות בשעות היום שלך תמצא באמצעות רשת מתסכל בעיות יכול להיות מנוסה עם קשרים תזמון את הבעיה רק ​​יחמיר כפי שאתה בסדר גודל הרשת שלך.
  • להבטיח מקומות עבודה יכול לרוץ על העובדים שלך. אם עבודות להיות גם זיכרון עבודות שטח אינטנסיבית או דיסק אינטנסיבית יתחיל להפיל והדבר היחיד תבחין היא ירידה במספר מקומות עבודה מעובדים עם בלי שום סיבה אמיתית מדוע.

תוצאות הגשת עבודה

בעת הגשת את התוצאות של העבודה חשוב לבדוק כי התוצאות לא הוגשו על ידי עובד אחר, במיוחד אם העובד הנוכחי היה רדום במשך זמן מה.

כאשר תוצאות מוגשים להבטיח כי מספר התוצאות תואם את מספר הרשומות בתוך העבודה.

כאמור, לא יכול להיות מעל הדגיש, לבנות עמידות בפני תקלות לתוך אחזור העבודה והגשת תוצאות. העובדים יכולים (וכנראה יהיה) להיכנס למצב השהיה בבית נוח ביותר של פעמים וזה צריך להיות מובאים בחשבון. כמו כן שוב לפשט משם הגשת התוצאות שלך יעזור לספק את השינויים הבאים אל המערכת שלך מלאה עבודה הרבה יותר קל להתמודד איתו.

תקציר

ב section זו אנו בחנו מה שרת השליטה עבודה צריך לעשות ואיך לקבל מערכת בסיסית מאוד להגדיר. דיברנו על איך לשחזר את העבודה ממערכת מלאה מהי הדרך הטובה ביותר להגדיר מקומות עבודה כדי לקבל ביותר של המערכת במשרד הרשת. לסיום, פסקה או שתיים על הגשת תוצאות בחזרה לשרת השליטה העבודה הוצגה.

  • שרת השליטה עבודה מנהלת מקומות עבודה מבטיח כי כל יחידות העבודה הושלמו
  • על ידי לפשט את העבודה שלך לבחור / תוצאות הגשת אנחנו יכולים לשנות את הטכנולוגיה של שרת שליטה ללא בעיות הרבה
  • להגדיר עבודות שלך כדי לוודא שהם מתנהלים במהירות וביעילות, ללא הפעלת לחץ רב מדי על תשתית הרשת שלך, בלי לשכפל משימות עיבוד על בסיס קבוע.
  • ודא כי אתה בונה עמידות בפני תקלות ו checking שגיאה לשגרת החיים, עובדים יכולים להשעות ולחדש את נוח ביותר של פעמים. זכרו לבדוק אם התוצאות כבר הוגשו על ידי עובד אחר.

בפעם הבאה

ב חלק 3 ניצור מכונה לעיבוד הוירטואלית שלנו להגדיר מכונות החלונות שלנו להיות פעיל במשרה עובדים.

רשת המחשוב במשרד באמצעות סביבות וירטואליות - חלק 5

על ידי , יום שישי 4 דצמבר 2009 11:03

הקדמה

אני עובד בחברה שבה גמר עבודות אצווה רבים עיבוד מיליוני רשומות של נתונים מדי יום, חשבתי לאחרונה על כל מכונות יושבים בכל יום לעשות כלום במשך כמה שעות. האם לא יהיה זה טוב אם אנחנו יכולים להשתמש במכונות האלה כדי לחזק את כוח העיבוד של המערכות שלנו? במערכה זו של מאמרים אני מסתכל על היתרונות הפוטנציאליים של העסקת המשרד לרשת באמצעות סביבות וירטואליות.

ב חלק 4 הסתכלנו שימוש בכלים על מנת להבטיח שאנחנו מריץ את הגירסה האחרונה של מקורות קוד ונתונים, כך התוצאות המתקבלות הן תמיד up-to-date עם המידע העסקי העדכני ביותר ואת ההיגיון.

לפני פריסה

לפני פריסת המערכת רשת שלך אם יש דבר אחד שאתה עושה דבר אחד בלבד זה שיא המערכת הנוכחית שלך! לא משנה מה אתה אומר על הקולגות כמה עבודה נוספת המערכת הולך לעשות אלא אם יש לך מספרים לגבות את זה ערבויות שלך הם כלום. אז,

  • כמה שיאים אפשר לעבד כיום? ביום? לשעה?
  • כמה זמן בדרך כלל לוקח להסתובב עבודה?
  • כמה קיבולת יותר יש לך?

יש גם שאלות נוספות:

  • אם שרת העיבוד שלך (או אחד השרתים העיבוד) יורדת איך זה ישפיע על היכולות שלך, אתה תהיה נכה?
  • אילו יתרונות אתה מקווה / מצפה לקבל ממערכת הרשת?
  • מכונות משרדיות שלך מסוגל להריץ את העבודות?
  • האם שלך (או עבודות ניתן להמיר) כדי wrok בסגנון הזה של ריצה?

הנקודה הגדולה האחרונה היא לקחת את הזמן שלך על כל שינוי משמעותי כזה. עדכן את קוד העיבוד שלך לעבוד באמצעות שיא חדש, מתודולוגיה שוב. ואולי להקים שרת העיבוד להפעיל מכונה וירטואלית, אחרי כל שרת עיבוד שלך תהיה רק ​​עוד עובד (רק 1 חזק מאוד יחסית). לאפשר תהליך חדש להתיישב.

פריסה

ההצעה שלי יהיה לקפוץ לתוך סוף השבוע למשרד לבצע את כל המתקנים ועל ההתקנה. לעשות את זה רק לפני החג של שבועיים ולצאת אחר כך המסכן להתמודד עם ההשלכות ... ואולי לא ...

פריסה של מערכת כזו צריכה להיות איטית. למרות היותו פשוט יחסית להקים את המערכת תשפיע על תשתית המשרד כולו (גם 1 דיגיטלי). ראשית, לרדד לכמה מכונות בכל פעם, התנועה צג הרשת, איך המארחים העובד לבצע על בסיס היום יום. ייתכן שיהיה עליך לשנות את תצורת העבודה שלך בתגובה לממצאים שלך.

לאחר שהמערכת כבר התיישבו עם כמה מכונות (נניח 10% מכלל מכונות משרדיות, כלומר 5) לשמור על רשת ניטור התנועה המחשב המארח performance. benchmark הבא שוב, כעת אתה אמור להיות עיבוד מקומות עבודה 33% יותר מאשר מבחני ביצועים הראשונים שלך. יש לבדוק את זה כך, או שאתה לפחות האצטדיון הזה. אם לא, לבדוק מה קורה לפני שעבר. חזור על מחזור עד בשמחה יש כל מכונות משרדיות פועל בלי להרוג את ביצועי המכונה אדם או שחיקה הרשת כדי קיפאון.

בכל עת להמשיך בהשוואות, גם לאחר כל פריסות עשויים. בדוק כמה עדכונים הקוד החדש משפיע על המהירות של המערכת שלך, בדוק כל העובדים מדווחים על ועיבוד מקומות עבודה. לאט לאט (לאט לאט) להגדיל תצורת העבודה שלך כדי לקבל את הטוב ביותר מן העובדים שלך ברשת.

עצור!

מה אם אתה רוצה להפסיק העובדים שלך לפעול בזמן זה? הם כולם שם פועל, התחדשות, ומנסה כמיטב יכולתם כדי לעבד את הנתונים כמו חרקים רעבים. התשובה אולי נראה מובן מאליו אבל שווה להוסיף למקרה להתעלם שלה. כל שעליך לעשות הוא לערוך את התסריט לעיבוד שלך עם יציאה (0) או למות () או כל משפט אחר להרוג עבודה עיבוד שלך. סיבה חשובה מדוע אנחנו תמיד מנסים לעדכן את התסריט לעיבוד האחרונה לפני להפעיל את כל!

הפגנה מערכת

על מנת לכתוב את סדרת המאמרים הקצרים יצרתי רשת קטנה מאוד להפגין את טכנולוגיות ומתודולוגיות. קראתי הרבה מאמרים, מדריכים, והשתמשו בכלים שונים כדי להגדיר ולעקוב אחר המתרחש. בשום אופן לא הייתי הלך החוצה רווי המשרד כולו עם התנועה וגם לא היתה לי גישה למחשב חברי צוות קבוע כדי לראות איך ביצועי המארח הושפע.

מערכת ההדגמה שלי היה צנוע מאוד. השתמשתי שולחן העבודה הרגיל שלי להגדיר כשרת השליטה העבודה. על זה אני התקין mySQL מותקן שרת להגדיר בתור אמן בשכפול, PHP , A ו-SVN מקושר דרך Apache (גישה דרך VM עובד).

אז יצר מכונת CentOS על VirtualBox עובד על מחשב נייד בן 6 של Windows XP. אני להגדיר משימות מתוזמנות כאמור לאחר העתקת VM על המחשב ולתת לו ללכת.

מכונה וירטואלית הוקמה עם PHP, חתרנות, ו-MySQL. בדקתי את ענף בשם "העובד מהעבודה שלי מאגר השליטה שרתי ודאג שזה יכול להתעדכן באמצעות" svn עדכון ". הבא לי את תוכנית ההתקנה MySQL בתור עבד ובדק את הנתונים שכפול מ-MySQL בשרת הבקרה עבודה עד VM עובד. אחרי כל זה אני ההתקנה סקריפט bash לבין עבודה cron.

עיבוד התסריט שלי בעצם הלכה בנוסח זה (דברים פשוט מאוד):

  • קרא בשדה שם
  • מנה את מספר שמות דומים בטבלה ממקור נתונים שנערך ב VM
  • מנה את מספר שמות כמו שם לעיל, אך פיצול ידי רווחים (כלומר שם פרטי, המזרח, שם משפחה)
  • תהליך זה חזר על 1,000 פעמים

כל עבודה לקח כ 20 דקות לרוץ. בשלב מסוים פתחתי כמה עותקים של VM עובד על מחשב נייד Windows וצפה את העבודות יש לבדוק את כל אחד את כתובות ה-IP העובד. בשלב זה אני גם אישר כי שכפול אוטומטית מחדש.

השארת המחשב הנייד להתבטל הביא עובד החל לעבד עבודות משרת את השליטה העבודה. בעת חידוש השימוש הנייד היה עיכוב של כ 30-60 שניות, זה לא מעט זמן הצוות היו צריכים להיות מודעים כי המחשב שלו רשאי להשהות לזמן קצר בעת החזרת המכונה. מכונות חדשות יותר לא יכול להיות הפסקה של כל כך הרבה זמן. היתרון של כמות עיבוד על ידי מכונות אלה בתקופות סרק יותר כי היו עולים על אנשי הצוות יצטרכו להמתין פרק זמן קצר (נניח, 1 דקה) עם הגעתו של המכונות שלהם בבוקר (לעתים קרובות אני מחכה כבר שזה עבור Windows Defender לעדכן להתקיים) בתנאי שהם היו מודעים לכך (זמן שימושי לתפוס קפה בבוקר!).

בסך הכל אני מרגיש בטוח שאני הוכיחו את הטכנולוגיות שניתן להשתמש בו כדי ליצור מערכת כזו. אני הראו כי מערכת כזו פועלת בקנה מידה (מאוד) קטן עם עוד כמה ניסויים יכול להיות scaled עד לנצל את המשאבים של המחשבים של המשרד. אם אני לא מבין עד כדי לעשות את זה הייתי מאוד מעוניין לדעת / לראות מתי מישהו אחר עושה.

מסקנות / הערכה

הצעד הברור הבא יהיה ממש מקבל דוגמה העולם האמיתי ולהתחיל לפרוס מערכת כזאת בתוך הסביבה במשרד ולראות מה קורה. מבוקש העסק להתחייב זה ללא חברת שובל בוער להוכיח את הטכנולוגיה והיעילות עלול להיות קצת קשה. גריד / מחשוב מבוזר מאוד פופולרי הוא כמה עיגולים ויש כמה יישומים גדולים (BIONC, SETI @ Home, Folding @ home, וכו '). לא, עם זאת, בקנה מידה קטן יותר למצוא מערכת פשוטה כמו זו בחיפושים שלי זה יכול להיות מגולגל בתוך הסביבה במשרד.

יצרתי מערכת חופשית בעצם שימוש בתוכנות קוד פתוח בעיקר כלי זמין בכל משרד כמעט. טכנולוגיות היו הפגינו בעצם ולהראות לבצע ולעבוד כצפוי. אני מקווה שיש לי להראות את זה עם העבודה לא הרבה יותר ועם התקנה פשוטה מאוד אתה יכול לפרוס רשת המחשוב במשרד המערכת כי הוא חזק, זול, וניתן להרחבה כולם בעת ובעונה אחת.

לאחר שהמערכת היא ולהפעלתו אין כמעט סוף לכמות התאמה אישית שיפורים שאתה יכול לעשות. לסטטיסטיקה לדוגמה / בהשוואות יכול בקלות להוסיף מראה את השווי של מערכת כזו בכל יום. מחשבים חדשים ניתן להוסיף בקלות ובמהירות כפי וכאשר הם מגיעים עם שדרוגים החומרה הקיימת לחזק את כוח העיבוד שלך.

אני מקווה שאתה נהנה לקרוא סדרת מאמרים שלו נתן לכם חומר למחשבה על הפעלת המערכת לרשת המשרד. הפתרון המוצג כאן לא בהכרח יעבוד בכל המצבים, אך צריך להיות מותאם כדי לאפשר לך לקבל את עיבוד הנתונים נעשה באמצעות פתרון משלך.

אתם מוזמנים לשלוח לי הערות, תיקונים או שיפורים ואני אעשה כמיטב יכולתי כדי לשמור את המאמר הזה מתעדכן בהתאם.

Zend Framework: יסודות - סקירה

על ידי , יום שבת 28 נובמבר 2009 22:42

המעסיק שלי שילם לאחרונה קבוצה של מפתחים לנו לקחת את המסגרת Zend: יסודות הקורס, כאן אני לסכם את מחשבותי וחוות דעת על מסלול לאחרים. עבור אלו שרוצים לחסוך זמן, הנה סיכום שלי:

עבור מפתחים שלא היה להם זמן להסתכל על המסגרת Zend את הקורס הזה (Zend Framework: יסודות) מציע תמונה כללית טובה של מסגרת מציגים בפניך את תחומי מפתח ולתת מספיק מידע כדי להמשיך. עבור אלו שבילו זמן להסתכל במסגרת ויש להם בעקבות אחד או שניים הדרכות הקורס אינו מציע הרבה מעבר.

רקע

הייתי PHP מפתח במשך כ 5-6 שנים, החלו לעבוד עם Zend Framework על בסיס מרכיב במהלך 6 החודשים האחרונים. פיתחתי ו / או היה מפתח על כמה קטנה Zend Framework MVC sites. אני אהיה כנה, לא היה לי כמות עצומה של חשיפה במסגרות אחרות מנקודת מבט קידוד אבל ביליתי כמה שעות לחקור אתרים הפרויקט והערכת them. במסגרת והקהילה הסובבת Zend Framework זה מרגש למדי, נראה שיש אפשרויות ענק שבו שלה הולך.

על הקורס

הקורס מועבר על 9 שעות שני מפגשים WebEx (עם הפסקה של 10 דקות באמצע). הזמן הוא בילה עובר סדרה של שקופיות הניתנים על ידי Zend בדיון בכל עת. ניתן להשתמש במיקרופון כדי לדבר עם המורה, אבל למען האמת לא ראיתי אף אחד להשתמש בכל מה יותר חלון הצ'אט. בנוסף מכונת Ubuntu VMWare מסופק כי יש קוד למשל פרויקטים להגדיר גירסת ניסיון של Zend Studio. המנהיג הקורס מדבר עם המשתתפים גם על פתרון משולב VoIP, או שאתה יכול לחייג באמצעות אחד חיוג רבים ברחבי העולם במספרים.

במהלך החומר מורכב סקירה קצרה של המסגרת ואת תבנית MVC לפני הכותרת לתוך היישום מדגם בספר האורחים. הדיון הפגינו המנוף, Zend_Application, טבלאות DB, גישה למסד הנתונים, טפסים, סינון, ACL, אימות, וכו 'וכו' למעשה מכסה את כל הנושאים שאת זקוקה להם כדי לאתר את בסיסי הזמן פועל בכל נותן לך את הכלים ללכת להביא מתקדם יותר במסגרת (אם כי זה לא כמות "לראות באתר" זמן רב).

זמן ניתן לקודד כמה דוגמאות, כדי לפתח את "ספר אורחים" ויישום פשוט "ויקי". באופן אישי אני חש כי מתן קוד או בכל אפליקציה ואז מבקשים מאיתנו לפתח את מה שהיה למעשה העתק לצד לא ממש מספקים חווית למידה טובה. הייתי מעדיף לפתח יישומים דומים, אך לא זהים. ליישום למשל עם יתרון שיש מדריך להתייחס. Alternatively building the applications from scratch with the demonstrator would of possibly led to more questions about why and how , thus giving a better understanding of the framework, after all you can look up specifics after the course.

The last lecture consisted of working on the wiki application with help/guidance from the instructor. After the course feedback was taken, it was emphasised several times through the course that Zend takes feedback very seriously, in fact apparently our version of the course was quite new. 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. He was clearly someone who used the framework on a regular basis rather than someone who is taught to teach the course, I liked the 'real world' experience in that respect.

Overall Feeling

In some ways I found the course a waste of time, in others it was very handy. 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.

That said, the course title does clearly state “Zend Framework: Fundamentals ” and in that aspect the course achieves what it sets out to do. 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.

תקציר

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.

התחבר ל DB באמצעות Zend Framework

על ידי , יום שלישי 14 אפריל 2009 21:06

I've managed to get a site up and running with the Zend Framework , everything is logging nicely to FireBug/FirePHP so next step was to log to the DB. I also wanted to log some additional information using the framework such as user agent, date and time, get and post variables. So to extend the manual a little here's what I did:

// Set up logging to DB
$db = Zend_Registry ::get('dbAdapters');
$db = $db['general'];

$columnMapping = array( 'priority' => 'priority',
'message' => 'message',
'datetime' => 'timestamp',
'user_agent'=> 'user_agent',
'get_vars' => 'get_vars',
'post_vars' => 'post_vars',
'site' => 'site'
);

$writerDb = new Zend_Log_Writer_Db($db, 'error_logging', $columnMapping);
$logger = new Zend_Log($writerDb);

$logger->setEventItem('datetime',date('Ymd H:i:s'));
$logger->setEventItem('user_agent',$_SERVER['HTTP_USER_AGENT']);
$logger->setEventItem('get_vars',print_r($_GET,true));
$logger->setEventItem('post_vars',print_r($_POST,true));
$logger->setEventItem('site',SITE);

$logger->info('Informational message');

Where the array keys in $columnMapping are my column names. 'Priority' and 'message' are understood by Zend_Log_Writers but the additional fields were added to give me some additional information.

Obviously this assumes that you have logging working using one of the other writers first :)













פנורמה נושאים על ידי Themocracy

5 מבקרים מקוון עכשיו
5 guests, 0 bots, 0 members
Max visitors today: 14 at 12:49 am UTC
החודש: 26 ב 2012/04/04 10:27 UTC
השנה: 69 ב 27-02-2012 9:56 בבוקר UTC
כל הזמן: 130 ב 28-03-2011 10:40 UTC