בעניין איתחול ועדכון שרת HTTP
-
סשנים בד"כ לא נשמרים בRAM אלא בדיסק בקבצים או במסד, לכן לגביהם אין בעיה.
לגבי קבצים בהעלאה זו נחשבת בעיה זניחה ברוב האתרים, ובאמת בזמן שחרור גירסה או בכל נפילה של שרת זה מתאפס.
אפשר להתגבר גם על זה עם קוד מתאים, אבל זה לא שווה את זה במקרים קלאסיים. -
@dovid אין חיה כזאת שכל שינוי מתבצע אוטומטית ללא צורך באיתחול?
במו עיני ראיתי מתכנת של שרת רציני עם קריאות כל רגע, עושה שינוי, שומר אותו, ותוך רגע השרת היה מעודכן. (dot net בסביבת visual studio).אני מדבר כמובן על איתחול של תוכנת השרת עצמה. לא על המכונה.
-
למיטב ידעתי שינוי בקוד של צד השרת מחייב ריסטרט הן בנוד והן בדוטנט (דוקא בPHP לא צריך).
גם אם אפשר תיאורטית להתגבר על זה זה אומר קוד לא יעיל ומסובך לחינם.
.
ייתכן שהשינוי שההוא עשה היה בקבצים סטטיים.
או שאתה לא הבנת והוא כן עשה ריסטרט (זה לוקח שניה, וזה נעשה אוטומטית במידה וזה נעשה ע"י WebDeploy, אבל העלאות ייתקעו למיטב ידעתי). -
בPHP זה מיידי.
בשאר בד"כ צריך ריסטארט.בדוטנט זה מתחלק ל2.
- אם זה פרוייקט מסוג website אז בשנייה ששמרת /החלפת את הקובץ בחדש, הקריאה הבאה לדף תביא את הקוד המעודכן ולא צריך לעשות כלום (@מנצפך זה כנראה מה שראית בעיניים)
- אם זה פרוייקט מסוג פרוייקט, שם אם עשית שינוי בקוד, אז הוא צריך build מחדש וזה עושה סוג של ריסטארט לשרת (אין צורך לעשות ריסטארט בIIS - הפרוייקט פשוט מתאפס)
גם בפרוייקט הזה, שינויים בקבצי ASPX או cshtml/vbhtml יחולו מיד עם השמירה או ההחלפה שלהם.
-
אפשר לעשות שייטען אוטומטית, אבל זה מפעיל שוב את כל האפליקציה.
הטבע של nodejs זה כמה קטעי קוד קצרים שרצים מיידית ומחכים לבקשות. שינוי בקטע הקוד שכבר רץ בטח שמחייב טעינה חוזרת, אלא"כ יכינו בתוך האפליקציה עצמה wathc לתיקיה, ויטענו את הקוד דינמית. זה אפשרי לגמרי ומיותר לגמרי. -
-
@מנצפך אמר בבעניין איתחול ועדכון שרת HTTP:
@dovid @אהרן
אני מבין שזה רק דואג לעניין הסשנים. לא עוזר לשאר העניינים (כמו העלאת קבצים או עיסקאות באמצע פעולה).
נכון?יש לך טעות בסיסית מתחילת השרשור. שסנים, בכל מקרה מוגנים, והם יהיו בדיוק איפה שהשארת אותם, אוקי? אלא"כ עשית MemoryStore שרק אז יש לך בעיה.
"עסקאות באמצע" זה מחולק לשתיים. הצד לקוח שהוא באמצע זה פשוט שסנים. אז אתה מכוסה. הבעיה זה צד שרת, אם למשל אתה כותב לDB שבוצע תשלום, ומחכה לקאלבק בשביל לעשות פעולה נוספת, אני לא חושב שיש דרך בעולם למנוע כשל בשלב הזה.
במערכות גדולות כנראה שמים פילטר כללי, שבמצב פיתוח עוצר את כל הבקשות. ואז לאחר דקה אפשר להיות בטוחים שאפשר לעשות ריסטרט תוך שמירת שסנים כמובן.