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

    בעניין איתחול ועדכון שרת HTTP

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

      אני מתאר לעצמי שזו בעיה נפוצה:
      עשינו שינוי קטן בשרת http. נניח ב nodeJs
      איך עושים שהשינויים יחולו? האם להפעיל מחדש את השרת?
      מה עם כל הסשנים?
      אני מניח שעם הסשנים ספציפית אפשר להסתדר (לשמור אותם במסד נתונים). אבל מה עם כל הפעולות שהמשתמש באמצע לעשות, כגון העלאת/הורדת קובץ. פעולות חשובות אחרות, כגון סליקת אשראי וכדו'.
      האם יש אפשרות שכל שינוי שנעשה ישתקף מיידית? (נניח שינינו פונקציה, פעם הבאה שהיא תיקרא תעלה הפונקציה החדשה).
      אני בעיקר מתמקד בnodeJs, אבל מעניין אותי תיאורטית בכל שרת.
      (זכור לי שב C9 כל שינוי משתקף מיידית.)
      אני לא מדבר על כלים כמו forever שפשוט מפעילים מחדש את השרת.

      תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • dovid
        dovid ניהול נערך לאחרונה על ידי dovid

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

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

        תגובה 1 תגובה אחרונה תגובה ציטוט 1
        • מנצפך
          מנצפך נערך לאחרונה על ידי מנצפך

          @dovid אין חיה כזאת שכל שינוי מתבצע אוטומטית ללא צורך באיתחול?
          במו עיני ראיתי מתכנת של שרת רציני עם קריאות כל רגע, עושה שינוי, שומר אותו, ותוך רגע השרת היה מעודכן. (dot net בסביבת visual studio).

          אני מדבר כמובן על איתחול של תוכנת השרת עצמה. לא על המכונה.

          תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • dovid
            dovid ניהול נערך לאחרונה על ידי dovid

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

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

            תגובה 1 תגובה אחרונה תגובה ציטוט 1
            • clickone
              clickone נערך לאחרונה על ידי

              בPHP זה מיידי.
              בשאר בד"כ צריך ריסטארט.

              בדוטנט זה מתחלק ל2.

              1. אם זה פרוייקט מסוג website אז בשנייה ששמרת /החלפת את הקובץ בחדש, הקריאה הבאה לדף תביא את הקוד המעודכן ולא צריך לעשות כלום (@מנצפך זה כנראה מה שראית בעיניים)
              2. אם זה פרוייקט מסוג פרוייקט, שם אם עשית שינוי בקוד, אז הוא צריך build מחדש וזה עושה סוג של ריסטארט לשרת (אין צורך לעשות ריסטארט בIIS - הפרוייקט פשוט מתאפס)
                גם בפרוייקט הזה, שינויים בקבצי ASPX או cshtml/vbhtml יחולו מיד עם השמירה או ההחלפה שלהם.

              אין טסט כמו פרודקשן.

              המייל שלי urivpn@gmail.com

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

                ב C9 זה לא חל מיד? זכור לי שכן.

                dovid תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • dovid
                  dovid ניהול @מנצפך נערך לאחרונה על ידי

                  @מנצפך אמר בבעניין איתחול ועדכון שרת HTTP:

                  ב C9 זה לא חל מיד? זכור לי שכן.

                  C9 זה IDE.
                  תלוי מה אתה מפתח.

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

                  מנצפך תגובה 1 תגובה אחרונה תגובה ציטוט 1
                  • מנצפך
                    מנצפך @dovid נערך לאחרונה על ידי

                    @dovid
                    nodeJS

                    תגובה 1 תגובה אחרונה תגובה ציטוט 0
                    • מנצפך
                      מנצפך נערך לאחרונה על ידי

                      מה הרעיון שזה לא עובד אוטומטית? כל המודלים נטענים כבר בהתחלה לזיכרון?

                      תגובה 1 תגובה אחרונה תגובה ציטוט 0
                      • dovid
                        dovid ניהול נערך לאחרונה על ידי

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

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

                        תגובה 1 תגובה אחרונה תגובה ציטוט 0
                        • dovid
                          dovid ניהול נערך לאחרונה על ידי

                          הנה זה נראה לי עושה את זה:
                          https://github.com/kriszyp/nodules

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

                          תגובה 1 תגובה אחרונה תגובה ציטוט 0
                          • מנצפך
                            מנצפך נערך לאחרונה על ידי

                            @dovid נראה לי מורכב מידי.
                            חבל שמלכתחילה לא עשיתי ב PHP או ב dotNet...

                            dovid תגובה 1 תגובה אחרונה תגובה ציטוט 0
                            • dovid
                              dovid ניהול @מנצפך נערך לאחרונה על ידי dovid

                              @מנצפך אמר בבעניין איתחול ועדכון שרת HTTP:

                              @dovid נראה לי מורכב מידי.
                              חבל שמלכתחילה לא עשיתי ב PHP או ב dotNet...

                              אולי תסביר למה אתה צריך טעינה חיה שכזו?

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

                              תגובה 1 תגובה אחרונה תגובה ציטוט 0
                              • מנצפך
                                מנצפך נערך לאחרונה על ידי

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

                                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                • dovid
                                  dovid ניהול נערך לאחרונה על ידי

                                  נו ומה קורה אם אתה עושה ריסטרט? מאתיים גולשים באמצע להעלות קבצים?

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

                                  א תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                  • א
                                    אהרן @dovid נערך לאחרונה על ידי

                                    https://github.com/magicode/node-reload

                                    dovid M 2 תגובות תגובה אחרונה תגובה ציטוט 4
                                    • dovid
                                      dovid ניהול @אהרן נערך לאחרונה על ידי

                                      @אהרן אמר בבעניין איתחול ועדכון שרת HTTP:

                                      https://github.com/magicode/node-reload

                                      לא ייאמן, שכחתי מזה לגמרי!

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

                                      מנצפך תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                      • מנצפך
                                        מנצפך @dovid נערך לאחרונה על ידי

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

                                        dovid תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                        • dovid
                                          dovid ניהול @מנצפך נערך לאחרונה על ידי dovid

                                          @מנצפך אמר בבעניין איתחול ועדכון שרת HTTP:

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

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

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

                                          תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                          • מנצפך
                                            מנצפך נערך לאחרונה על ידי

                                            עשיתי משהו בפרייוורק של sails שמבוסס express וכל הדברים הטובים והמוכרים.
                                            הוא לא שומר את הסשנים, רק אם אני מגדיר הוא יכול לשמור (על DB כמו Redis למשל).

                                            dovid תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                            • M
                                              magicode @אהרן נערך לאחרונה על ידי

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

                                              א תגובה 1 תגובה אחרונה תגובה ציטוט 4
                                              • א
                                                אהרן @magicode נערך לאחרונה על ידי

                                                @magicode אמר בבעניין איתחול ועדכון שרת HTTP:

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

                                                אבל כן שומר את השסנים ב-DB.

                                                תגובה 1 תגובה אחרונה תגובה ציטוט 1
                                                • dovid
                                                  dovid ניהול @מנצפך נערך לאחרונה על ידי dovid

                                                  @מנצפך אמר בבעניין איתחול ועדכון שרת HTTP:

                                                  עשיתי משהו בפרייוורק של sails שמבוסס express וכל הדברים הטובים והמוכרים.
                                                  הוא לא שומר את הסשנים, רק אם אני מגדיר הוא יכול לשמור (על DB כמו Redis למשל).

                                                  נכון, https://sailsjs.com/documentation/concepts/sessions
                                                  הם עשו את זה בשביל קלות ההגדרה, אבל זה לא עסק לאתר ייצור. סשנים חייבים להיות שמורים על הדיסק, ככה אני חושב.
                                                  תוך דקה תה מגדיר שיישמר בDB או בקבצים.

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

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

                                                  clickone תגובה 1 תגובה אחרונה תגובה ציטוט 2
                                                  • clickone
                                                    clickone @dovid נערך לאחרונה על ידי

                                                    @dovid אמר בבעניין איתחול ועדכון שרת HTTP:

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

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

                                                    אין טסט כמו פרודקשן.

                                                    המייל שלי urivpn@gmail.com

                                                    dovid תגובה 1 תגובה אחרונה תגובה ציטוט 0
                                                    • dovid
                                                      dovid ניהול @clickone נערך לאחרונה על ידי dovid

                                                      @clickone אמר בבעניין איתחול ועדכון שרת HTTP:

                                                      @dovid אמר בבעניין איתחול ועדכון שרת HTTP:

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

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

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

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

                                                      תגובה 1 תגובה אחרונה תגובה ציטוט 2
                                                      • 1 / 1
                                                      • פוסט ראשון
                                                        פוסט אחרון
                                                      בא תתחבר לדף היומי!