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

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
ח

חוקר

@חוקר
אודות
פוסטים
1.2k
נושאים
199
שיתופים
0
קבוצות
0
עוקבים
5
עוקב אחרי
0

פוסטים

פוסטים אחרונים הגבוה ביותר שנוי במחלוקת

  • בדיקת עומס על שרת
    ח חוקר

    @magicode אמר בבדיקת עומס על שרת:

    https://stackoverflow.com/questions/12732182/ab-load-testing

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

    תכנות

  • בדיקת עומס על שרת
    ח חוקר

    איך אני יכול לנסות להריץ על השרת 1500/2000 בקשות בו זמנית, לראות את העמידות של השרת?
    למישהו יש מידע?

    תכנות

  • סדר המשתנים בnodejs
    ח חוקר

    תודה. הרגעתם אותי

    תכנות

  • סדר המשתנים בnodejs
    ח חוקר

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

    var a = 2;
    var b = a * 4; //8
    var c = 5; //5
    var d = b + c; //13
    

    אני רוצה לקבל במשתנה d תוצאה 13 שמורכב מ b שהוא בעצם הכפלה של a תהליך שלוקח זמן יותר מלאכלס את משתנה c שהוא השמה בלבד ללא חישוב.
    באמת התוצאה בקונסולה היא ש d = 13
    אבל אני חושש מליצור תהליכים שבנויים אחד אחרי השני בקטע של משתנים, כשיש איזה חישוב במשתנים שייתכן שאחד יאוכלס לפני הקודם אליו או משהו כזה.
    האם אני צודק בחששות שלי, וא"כ האם יש פתרון?

    תכנות

  • שאלות מתקדמות ב nodejs
    ח חוקר

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

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    תודה רבה לכל אלו שעזרו וסייעו
    @david @יוסף-בן-שמעון @אהרן @magicode @clickone
    מקוה שלא פיספסתי מישהו.
    ב"ה הייתה התקדמות משמעותית היום, השלמתי בניית מערכת שעובדת בצורה חלקה, כמובן בעזרתכם.
    עדיין לא גמרתי, אני לא למדתי עדיין מספיק את השפה, אבל כבר היה מספיק בסיסי כדי לעשות משהו שזז באמת..
    במיוחד תודה ל @magicode על הדוגמה הראשונה שנתן, זה נתן לי פריצת דרך רצינית, וכן לימדה אותי פרק נוסף בנושא.
    וכן ל @david שדחף אותי להיכנס לזה..
    תודה

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

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @אהרן @יוסף-בן-שמעון
    בעצם הכי פשוט להכניס הכל ב IF הקודם.
    כך:

    if (!campaign_id || campaign_id === ''){
        res.end("id_list_message=" + 't-לא הוגדר מספר קמפיין, לא ניתן לבצע פעולה זו.' + '&' + "go_to_folder=/" + 'hangup');
    }else if (!campaigns_data[campaign_id]){
        res.end("id_list_message=" + 't-קמפיין לא מורשה במערכת, לא ניתן לבצע פעולה זו.' + '&' + "go_to_folder=/" + 'hangup');
    } else{
        campaign_stats = campaigns_data[campaign_id];
        var total = campaign_stats.data.total;
        ...
    }
    
    
    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @חוקר אמר בשאלות של מתחיל - מקצועי ב nodejs:

    כאשר אין מספר קמפיין, או מספר הקמפיין אינו מופיע במערך של הקמפיינים הפעילים, אני מקבל בלוג
    ReferenceError: campaign_stats is not defined

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

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @יוסף-בן-שמעון אמר בשאלות של מתחיל - מקצועי ב nodejs:

    אולי תפתח אשכול חדש לכל נושא, זה מכביד 3 עמודים לנושא אחד...

    כעת יש לי עוד 17 הודעות עד לדף הבא, ואח"כ נעבור נושא.
    או שעד אז הכל כבר יהיה מסודר בעזה"י..

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @יוסף-בן-שמעון אמר בשאלות של מתחיל - מקצועי ב nodejs:

    @חוקר זה לא קשור לאיך נוד קורא את הדף, זה פשוט משתנה שמעולם לא אותחל אז הוא undefind, אתה יכול לכתוב כך:

        var total = (campaign_stats && campaign_stats.data.total);
    
    

    זה יבדוק אם המשתנה קיים ואם לא הוא יחזיר מיד את הundifind ולא יכשיל את הפונקציה

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

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @חוקר אמר בשאלות של מתחיל - מקצועי ב nodejs:

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

    אולי הכי קל לעבוד עם IF ו ELSE?
    או כן להתרגל לעבוד עם משהו שהוזכר לעיל בנוגע לעבודה אסינכרונית?

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    שאלה חדשה, בנוגע לכתיבת הקוד.
    אם יש לי כזה קוד

        if (!campaign_id || campaign_id === ''){
            res.end("id_list_message=" + 't-לא הוגדר מספר קמפיין, לא ניתן לבצע פעולה זו.' + '&' + "go_to_folder=/" + 'hangup');
        }else{
            if (!campaigns_data[campaign_id]){
                res.end("id_list_message=" + 't-קמפיין לא מורשה במערכת, לא ניתן לבצע פעולה זו.' + '&' + "go_to_folder=/" + 'hangup');
            } else{
                campaign_stats = campaigns_data[campaign_id];
            }
        }
        var total = campaign_stats.data.total;
    

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

    ReferenceError: campaign_stats is not defined
    

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

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @clickone אמר בשאלות של מתחיל - מקצועי ב nodejs:

    @חוקר ליסט זה במקום משתנה רגיל ש @magicode הציע לשמירה על הסכום.
    במידה ויש לך כמה קמפיינים
    אז אתה צריך לעשות רשימה
    עם כל הקמפיינים הפעילים שלך
    ולשמור לדוגמא:
    מספר מערכת (שווה ערך למזהה קמפיין אצלך) => סכום שנאסף
    ואת זה לעדכן כל 2 שניות

    זה מה שעשיתי במה שכתבתי קודם, אבל השתמשתי במערך, שמקבל ID של הקמפיין => הJSON שלו, מה העניין בליסט?

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @clickone אמר בשאלות של מתחיל - מקצועי ב nodejs:

    לכאורה ברגע שיש בקשה למספר מסויים שיעדכן רק אותו בליסט שמור

    שוב שאלת תם
    מה הכוונה בליסט.

    תכניסו לראש שאני באמצע לצאת מהריבוע של ב PHP בו הייתי, @dovid (אולי בדרך לאסטריסק דרך נוד)

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @יוסף-בן-שמעון אמר בשאלות של מתחיל - מקצועי ב nodejs:

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

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

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @יוסף-בן-שמעון אמר בשאלות של מתחיל - מקצועי ב nodejs:

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

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

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

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

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @יוסף-בן-שמעון אמר בשאלות של מתחיל - מקצועי ב nodejs:

    כל שתי שניות אתה מתעדכן מול צ'רדי בלי קשר לבקשות, ואתה שומר את המידע בזכרון (אחד המעלות הגדולות של נוד מול PHP!) וכשהקלינט שולח בקשה אתה שולף לו מיד מהזכרון את המידע האחרון שקיבלת מצ'רדי, כך הוא לא צריך להמתין למידע, והוא מקבל נתון שנכון לשתי שניות האחרונות

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

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

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @magicode אמר בשאלות של מתחיל - מקצועי ב nodejs:

    @חוקר

    
    app.all('/api/ivr/amount-donate',(req,res) => { 
        if(!req.quary.name) {
          return res.end("read=f-name=name,,7,1,5,No,,,,123");
        }
        return res.end(`id_list_message=n-${req.quary.name}`);
    });
    

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

    תכנות

  • שאלות של מתחיל - מקצועי ב nodejs
    ח חוקר

    @magicode אמר בשאלות של מתחיל - מקצועי ב nodejs:

    אני מצרף דוגמא.

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

    תכנות
  • 1 / 1
  • התחברות

  • אין לך חשבון עדיין? הרשמה

  • התחברו או הירשמו כדי לחפש.
  • פוסט ראשון
    פוסט אחרון
0
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום