מספר שאלות מתקדמות בnodjs
א. היות וצורת העבודה שלי היא לא משהו קבוע, אלא כל הזמן עלי להוסיף פעולות וכתובות חדשות, שנקרא להם מערכות, וכן לתקן ולשנות מערכות קודמות.
מהי צורת העבודה הנכונה והנוחה?
לעשות לכל מערכת קוד נפרד, שיאזין לפורט נפרד, ואז יש לי את הגמישות שאני יכול לשנות מערכת מבלי לגעת במערכות פעילות אחרות, והקודים הרבה יותר מסודרים, אך אני מריץ לכל דבר תהליך נוד נפרד, דבר שלכאורה יקח יותר משאבים, ומצד שני אם זה היה הכל תחת תהליך אחד, אם תיהיה שגיאה בעדכון החדש זה יכול להפריע למערכות הפעילות, וכן הקוד ארוך ומפותל, אך אולי תהליך אחד גדול מבזבז פחות משאבים מכמה תהליכים קטנים.
ב. לגבי עצם העדכון, אני משתמש בPM2, לעשות restart לתהליך היא הדרך הכי נכונה לאחר ביצוע שינוי בקובץ?
ג. עד כמה כדאי להעמיס במשתנים בדף אחד?
הנקודה היא כך, לפי איך שהתחלתי להבין יותר לעומק איך שנוד בנוי בתהליך שרץ כל הזמן, זה יכול לתת לי מענה למה שהייתי תקוע עד עכשיו בPHP שלא הייתי יכול להשתמש במשתנה אחד משלב לשלב, אלא כל פעם הכל נטען ומסתיים מחדש, כעת אני יכול בעצם ליצור מערך של שיחות (אני מקבל בGET מזהה שיחה יחודי), ואז לאכסן בצד השרת בתהליך של הנוד כל מיני משתנים שרלוונטים לשיחה הנוכחית, ומקסימום אני יכול לעשות שכאשר שיחה מסתיימת אני אמור לקבל בGET פרמטר hangup=yes, ואז אני מוחק את זה מהמערך של השיחות הפעילות, ובעצם המערך הזה אמור להתנפח ולהתקטן לפי כמות השיחות הקיימות כעת במערכת.
האם זה מומלץ, או יכול ליצור בעיות?
ד. בהמשך לשרשור הקודם שלי, בניתי בצורה שהנתונים מתעדכנים כל 2 שניות, לא תמיד יש צורך בזה, יש שעות שאף אחד לא מחובר וכו' וחבל על המשאבים.
האם כדאי לבנות בצורה של מערך שמכיל ג"כ נתון של זמן עדכון אחרון, ואז אני מבצע בדיקה באם העדכון היה לפני למעלה מ2 שניות זה יעדכן תוך כדי הבקשה של הלקוח, והמאזינים הבאים במשך 2 השניות הקרובות יקבלו את המידע השמור, ואח"כ זה שוב יעדכן תוך כדי בקשה וחוזר חלילה.
אני מרוויח שאין בדיקה סתם כשלא צריך, ומצד שני א. המאזין הנוכחי שאצלו זה מתעדכן ימתין חצי שניה יותר.. ב. מה יקרה בבקשות ביניים, זאת אומרת מאזין א מתקשר, השרת רואה שזה לא מעודכן, ומפעיל את פונקציית העדכון, אך בינתיים ב 165 מ"ש שלוקח לעדכן, מתקשר מאזין ב ואז השרת רואה שעדיין לא עודכן המערך. זה יפעיל שוב את פונקציית העדכון? ונמצא שעודכן פעמיים בזה אח"ז? א"כ אני מפסיד הרבה מאוד ממה שאני רוצה להרוויח כמה שפחות פעולות עדכון.
@david @magicode @אהרן @יוסף-בן-שמעון @clickone