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

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

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. הפעלת פקודה כשתהליך נופל בPM2

הפעלת פקודה כשתהליך נופל בPM2

מתוזמן נעוץ נעול הועבר תכנות
13 פוסטים 4 כותבים 173 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • nigunN מנותק
    nigunN מנותק
    nigun
    כתב ב נערך לאחרונה על ידי nigun
    #1

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

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

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

    האם יש אופציה להפעיל פקודה של לינוקס
    לפני הפעלה מחדש של תהליך PM2?
    (אני מעדיף שזה לא יעשה מתוך השרת TCP)

    @dovid
    אם אני לא כותב ברור וכו'?
    אל תהסס ותן בראש
    אני רוצה להשתפר.
    (ולכל שאר החברים אל תהססו לשאול שאלות בעתיד
    אתם לא תקבלו כאלו התקפות)

    מייל: nigun@duck.com

    תגובה 1 תגובה אחרונה
    1
    • מנצפךמ מנותק
      מנצפךמ מנותק
      מנצפך
      כתב ב נערך לאחרונה על ידי
      #2

      לפי איך שהבנתי, הפתרון מאוד פשוט. השרת עצמו יפעיל את הפקודה בעת העלייה שלו. לא צריך שה PM2 יעשה את זה

      תגובה 1 תגובה אחרונה
      2
      • A מנותק
        A מנותק
        aaron
        כתב ב נערך לאחרונה על ידי
        #3

        למה שלא תשתמש בnginx כreverse proxy אל יותר מאינסטנס 1 של שרת אחורי שמופעל עם PM2?
        ככה גם אם אחד ייפול השני יהיה זמין.

        aaron.tchumim@gmail.com
        Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

        ווצאפ API - תיעוד שירות API לא רשמי.

        nigunN תגובה 1 תגובה אחרונה
        0
        • nigunN מנותק
          nigunN מנותק
          nigun
          השיב לaaron ב נערך לאחרונה על ידי nigun
          #4

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

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

          מייל: nigun@duck.com

          dovidD תגובה 1 תגובה אחרונה
          0
          • dovidD מנותק
            dovidD מנותק
            dovid ניהול
            השיב לnigun ב נערך לאחרונה על ידי dovid
            #5

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

            מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

            בכל נושא אפשר ליצור קשר dovid@tchumim.com

            nigunN A 2 תגובות תגובה אחרונה
            0
            • nigunN מנותק
              nigunN מנותק
              nigun
              השיב לdovid ב נערך לאחרונה על ידי nigun
              #6

              @dovid אמר בהפעלת פקודה כשתהליך נופל בPM2:

              @nigun
              העובדה שאסטריסק נופל מייד כשהGO נופל אולי גם יכולה להיפתר ע"י טייימהאוט גדול בפרוקסי, אני לא בטוח.

              לא הבנתי כ"כ, אתה מתכוון שהפרוקסי יםיל את השיחה ברגע שהוא מחליף שרת?

              בכל מקרה הפתרון הזה לא כ"כ קל, נדמה לי שNGINX לא תומך בפרוקסי לTCP אלא רק בגירסה המסחרית שלו.

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

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

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

              מייל: nigun@duck.com

              תגובה 1 תגובה אחרונה
              0
              • A מנותק
                A מנותק
                aaron
                השיב לdovid ב נערך לאחרונה על ידי
                #7

                @dovid אמר בהפעלת פקודה כשתהליך נופל בPM2:

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

                יש מושג של sticky session, מה שאומר שמידע של runtime אתה לא צריך לשתף, ומידע אחר בכל מקרה צריך להיות זמין על db.. כי זה אותו סוג מידע שאתה צריך שיהיה קיים גם כשאתה מרסט את השרת TCP שלך..

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

                לדעתי זה צריך להיות משהו כמו websocket שנפתח עבור כל שיחה, או יותר טוב ממשק API אמיתי שמיועד לעבוד בrealtime, כמו graphql אולי

                aaron.tchumim@gmail.com
                Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

                ווצאפ API - תיעוד שירות API לא רשמי.

                nigunN תגובה 1 תגובה אחרונה
                1
                • nigunN מנותק
                  nigunN מנותק
                  nigun
                  השיב לaaron ב נערך לאחרונה על ידי
                  #8

                  @aaron אמר בהפעלת פקודה כשתהליך נופל בPM2:

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

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

                  לדעתי זה צריך להיות משהו כמו websocket שנפתח עבור כל שיחה, או יותר טוב ממשק API אמיתי שמיועד לעבוד בrealtime, כמו graphql אולי

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

                  מייל: nigun@duck.com

                  A תגובה 1 תגובה אחרונה
                  1
                  • A מנותק
                    A מנותק
                    aaron
                    השיב לnigun ב נערך לאחרונה על ידי
                    #9

                    @nigun
                    קצת גיגלתי על זה עכשיו, אתה מדבר על signalwire?
                    מה המשמעות שלו? חייבים להשתמש בשירות החיצוני בתשלום שלהם בשביל זה?

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

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

                    aaron.tchumim@gmail.com
                    Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

                    ווצאפ API - תיעוד שירות API לא רשמי.

                    nigunN תגובה 1 תגובה אחרונה
                    1
                    • nigunN מנותק
                      nigunN מנותק
                      nigun
                      השיב לaaron ב נערך לאחרונה על ידי
                      #10

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

                      מייל: nigun@duck.com

                      תגובה 1 תגובה אחרונה
                      0
                      • A מנותק
                        A מנותק
                        aaron
                        כתב ב נערך לאחרונה על ידי
                        #11

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

                        aaron.tchumim@gmail.com
                        Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

                        ווצאפ API - תיעוד שירות API לא רשמי.

                        nigunN תגובה 1 תגובה אחרונה
                        1
                        • nigunN מנותק
                          nigunN מנותק
                          nigun
                          השיב לaaron ב נערך לאחרונה על ידי
                          #12

                          @aaron אמר בהפעלת פקודה כשתהליך נופל בPM2:

                          אם כי יש מצב שאני לא זכאי לחברות משום שאני לא מתעסק במערכות IVR עצמאיות ככלל..

                          אז אתה קורא תיעוד על FS (קיצור של freeswitch) לכיף?

                          מייל: nigun@duck.com

                          A תגובה 1 תגובה אחרונה
                          0
                          • A מנותק
                            A מנותק
                            aaron
                            השיב לnigun ב נערך לאחרונה על ידי
                            #13

                            @nigun אמר בהפעלת פקודה כשתהליך נופל בPM2:

                            @aaron אמר בהפעלת פקודה כשתהליך נופל בPM2:

                            אם כי יש מצב שאני לא זכאי לחברות משום שאני לא מתעסק במערכות IVR עצמאיות ככלל..

                            אז אתה קורא תיעוד על FS (קיצור של freeswitch) לכיף?

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

                            aaron.tchumim@gmail.com
                            Hetzner - שרתים וירטואליים ופיזיים במחירים מעולים (קישור שותפים)

                            ווצאפ API - תיעוד שירות API לא רשמי.

                            תגובה 1 תגובה אחרונה
                            1

                            בא תתחבר לדף היומי!
                            • התחברות

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

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