@dovid
אני עובד על לפי שעות.
אין לי כל אינטרס באמזון מלבד זה שהמליצו לי על זה מאוד (נדרים פלוס העביר לשם והיה מאוד מרוצה והוא המליץ לי, אומנם הוא לא משתמש ב EC2 אלא תוכניות אחרות, לי הסתדר לפתוח EC2 אז זה מה שעשיתי).
למען האמת כמו שאתה אומר להרים שרת זה להתקין את מה שצריך php, mysql, node וכו' את מה שאני משתמש, וא"כ לא זה הבעיה, (אולי כדאי לעשות איזה שהוא דף הוראות לעצמי לזכור כל מה שהתקנתי שיהיה נגיש בעת הצורך, ללא פיספוס איזה התקנה קריטית נשכחת.. אבל אני לא מסוגל בשלב זה לעבוד מידי לפי הספר).
מה שצריך תכלית זה גיבוי לקבצים וגיבוי לבסיס הנתונים.
במה שכתבת על הרצת כרון עם סינכרון לשרת אחר:
א. האם כדאי שרת בחברה אחרת, לכאורה כן, או שאין סיבה?
ב. האם ניתן לסנכרן את התיקיה שבו נשמרים הנתונים של mysql, ללא עצם החיבור באמצעות חיבור mysql אמיתי, אלא את החומר גלם של הזכרון שיושב באן שהוא בשרת.
ג. האם ומה מומלץ לגבי סינכרון mysql ברמת ה mysql?
תודה
חוקר
-
גיבויים של AWS EC2 -
PSI בסליקת אשראי במערכת טלפונית@clickone
העניין הוא שאחד הלקוחות שצריך מצד אחד סליקת אשראי, ומצד שני הוא חושש שזה יכול לסגור לו את החשבון שם.
מדובר בחשבון בחברת הסליקה הבינלאומית stripe, הוא חושש שהם יראו חיובים שבוצעו על ידי API ממקור שאינו מאובטח.
באתר שלו הוא עובד עם יפריים שלהם לכן אין לו בעיה, אבל למערכת הטלפונית הוא חושש. -
ניהול מסכי לד כמו בפתחי חנויות@clickone
אני מתכווין למסכי הלד שבפתחי החנויות שרצים שם טקסטים מצד לצד.
אולי הייתי קורא לזה מסך אנלוגי. -
פעולה סינכרונית nodejs@dovid אמר בפעולה סינכרונית nodejs:
@חוקר
חוששני שאתה לא בקטע כעת של "להבין" אלא בקטע של "להצליח", אני טועה?
הסיבה שלא כדאי לעשות thenים בלולאה היא כיון שזה בזבוז זמן: אתה לא צריך שכל בדיקה תחכה לאחת, מה אכפת לך שהם יבוצעו במקביל? מה שחשוב לך זה לדעת מתי נגמרו כל הבדיקות ומה התוצאות שלהם. Promise.all/Promise.race הם בדיוק בשביל זה.נראה לי שציינתי את זה שעדיף לא לעשות כך בגלל הבעיה הזו.
בהחלט אני חושב איך ניתן להגיע להצלחה, אבל אני מנסה במקביל ללמוד את פרומיס
(אני מסתפק האם לבצע אחרי הלמידה בצורה א-סינכרונית, או תוך כדי, בצורה סינכרונית..) -
NODEJS עצירת המשך ביצוע פעולותעל טעם וריח אין להתווכח.
אני למשל משתמש תמיד בסוגריים, בעיקר בגלל אם אני יוסיף שורות וכדומה, אבל גם כי אני מרגיש שזה יותר קריא לי שזה בתוך בלוקים מסודרים. -
NODEJS עצירת המשך ביצוע פעולות@dovid אמר בNODEJS עצירת המשך ביצוע פעולות:
@חוקר אני ישמח אם תרחיב על אופן העבודה מול ימות המשיח.
אם נניח חסר את הנתון ואתה מבקש אותו שוב, ימות המשיח מבקש זאת המלקוח, ואחרי התשובה פונה אליך שוב עם URL עדכני, נכון?
בURL הבא יהיו כל הנתונים שאתה רוצה? או רק מה שהיה חסר ללא הנתונים הראשוניים של אותה השיחה?כל פעם הוא שולח את כל ה URL פלוס הערך האחרון שנוסף, אם אתה שולח לו שאתה צריך שוב ID כגון לתקן וכדומה הוא יישלח לך
http://domain.com/aaa?ApiDID=033080222&ApiRealDID=033080222&ApiPhone=0521234567&ApiExtension=/1&id=222333444&id=111444555
ואח"כ תבקש את השם הוא ייתן לך
http://domain.com/aaa?ApiDID=033080222&ApiRealDID=033080222&ApiPhone=0521234567&ApiExtension=/1&id=222333444&id=111444555&name=name&lest=2
וכן הלאה
(ברעיון זה טירוף כי בעצם כדי לקבל את הערך החמישי שאני צריך בשיחה זו, יש חמש בקשות הלוך ושוב בין השרתים, ובכל שלב הURL מתארך ולפי הנתונים ב URL על השרת שלי לבצע את ההתקדמות לשלב הבא. ואז הURL מתארך בפרמטר נוסף וכו'.)
כעת ברור יותר? -
תתי הפניות ב express@יוסף-בן-שמעון אמר בתתי הפניות ב express:
כשאתה קורא ל res.end() אתה לא עוצר את הריצה של הפונקציה, אתה מסיים את התקשורת עם הקליינט, הפונקציה עצמה ממשיכה לרוץ, זה שני דברים שונים.
מאה אחוז!
תודה על הלימוד -
תתי הפניות ב expressבנוד בשימוש אקספרס
האם שייך לעשות הפניות בתוך הפניות?
משהו בצורה כזוapp.all('/',(req,res) => { res.writeHead(200, {'Content-Type': 'application/json; charset=utf-8', 'Access-Control-Allow-Origin' : '*'}); var query = url.parse(req.url,true).query; if (maslulim_to_api && maslulim_to_api !== {}) { maslulim_to_api['status'] = 'OK'; } app.all('/get_limud_yomi2',(req,res) => { var query = url.parse(req.url,true).query; res.end(JSON.stringify(maslulim_to_api)); }); app.all('/get_maslulim',(req,res) => { var query = url.parse(req.url,true).query; res.end(JSON.stringify(limud)); }); //console.log(maslulim_to_api); }); -
התקנת תעודה SSL עבור NODE@dovid אמר בהתקנת תעודה SSL עבור NODE:
כאמור תוכל לעשות להיפך, לשנות את הפורט של אפאצ', ולנתב עם הnginx לפי ההוסט או הפורט.
תוכל גם בכל שלב שתחליט לבטל לגמרי את האפאצ' ולעבוד רק עם nginx.בהחלט, אבל הכלל אצלי שדבר ראשון צריך לראות שזה עובד..
-
בניית מחלקת תקשורת עם ימות המשיח API ב nodejs@magicode תודה רבה.
בעזה"י אנסה להתקדם עם מה שכתבת -
הפעלת PM2 עם הגדרת פורט להפעלת תהליך ה node@yossiz אמר בהפעלת PM2 עם הגדרת פורט להפעלת תהליך ה node:
argv[2]
למה בחרת 2? שם הקובץ ג"כ ממוספר? א"כ אמור להיות 1 שהרי ספירה מתחילה בדר"כ מאפס
-
הפעלת PM2 עם הגדרת פורט להפעלת תהליך ה nodeאשמח להדרכה איך ניתן להגדיר בקובץ במקום שורה זו
server.listen(3030);להגדיר משתנה שאני מעביר מפקודת ההפעלה, בין אם זה פקודת
node app.jsובין אם זה פקודת
pm2 start/resstart appאיך אני כותב לו את הפורט המבוקש.
תודה -
NODEJS איחזור נתונים מתוך node-fetchאני צריך לבצע שאילתה מול שרת, ואני צריך לקבל ולטפל בתשובה הן מתוך מה שבכותרות והן מתוך מה שבתוכן הדף.
אני לא מצליח להעביר ל then הבא רק נתון אחד.
איך אני מעביר שני נתונים
משהו בסגנון הזה:fetch('https://httpbin.org/post', { method: 'POST', body: 'a=1' }) .then(res => res.json(), res.headers.get('content-type')) .then(json, headers => console.log(json) console.log(headers) );תודה
-
בדיקת עומס על שרת@clickone אמר בבדיקת עומס על שרת:
@חוקר זה נראה בסדר, אבל נחכה ל @magicode
(אני מתחיל להבין למה אומרים שNODEJS מגיב מהר כ"כ. זה מדהים המהירות)אכן.
לא סתם בסופו של דבר התלהבתי.
ממוצע בקשה דרך הדפדפן (של שמיעת מצב הקמפיין האישי או הכללי) הוא 75 מ"ש, (ע"י אינטרנט של נטפרי 019 מאה מגה מהירות) -
בדיקת עומס על שרתConcurrency Level: 4000 Time taken for tests: 1.789 seconds Complete requests: 4000 Failed requests: 0 Keep-Alive requests: 0 Total transferred: 1020000 bytes HTML transferred: 468000 bytes Requests per second: 2236.25 [#/sec] (mean) Time per request: 1788.708 [ms] (mean) Time per request: 0.447 [ms] (mean, across all concurrent requests) Transfer rate: 556.88 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 33 32.9 23 77 Processing: 11 237 376.9 79 1696 Waiting: 11 237 376.9 79 1696 Total: 12 271 388.0 154 1761 Percentage of the requests served within a certain time (ms) 50% 154 66% 287 75% 313 80% 347 90% 898 95% 941 98% 1732 99% 1759 100% 1761 (longest request)
התמונה כמובן היא מהשרת הנבדק.
העליה הראשונה הייתה ב 1750 בו זמנית והשניה ב 4000.
לכאורה נראה שהכל בסדר?
מקוה שהבנתי נכון את הפלט -
בדיקת עומס על שרת@clickone אמר בבדיקת עומס על שרת:
@חוקר
תדביק כאן את הפקודה (אתה יכול שלנות את הURL)ab -k -c 1000 -n 4000 http://123.123.123.123:3030/campaign_status?ApiPhone=0501234567&go_to_folder=3&campaign_id=00000&menu=1
-
שאלות של מתחיל - מקצועי ב 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:
@חוקר זה לא קשור לאיך נוד קורא את הדף, זה פשוט משתנה שמעולם לא אותחל אז הוא undefind, אתה יכול לכתוב כך:
var total = (campaign_stats && campaign_stats.data.total);זה יבדוק אם המשתנה קיים ואם לא הוא יחזיר מיד את הundifind ולא יכשיל את הפונקציה
הפונקציה בכל מקרה רצה ולא נכשלה, אבל אני רוצה ללמוד לכתוב תקין בכל מקרה.
לפחות אם אתם מלמדים אותי בכזה מסירות שיצאו פירות מעמלכם.. -
שאלות של מתחיל - מקצועי ב nodejs@יוסף-בן-שמעון אמר בשאלות של מתחיל - מקצועי ב nodejs:
כל שתי שניות אתה מתעדכן מול צ'רדי בלי קשר לבקשות, ואתה שומר את המידע בזכרון (אחד המעלות הגדולות של נוד מול PHP!) וכשהקלינט שולח בקשה אתה שולף לו מיד מהזכרון את המידע האחרון שקיבלת מצ'רדי, כך הוא לא צריך להמתין למידע, והוא מקבל נתון שנכון לשתי שניות האחרונות
אז הרחתי נכון, שמשהו קורה כאן שהסקריפט והתהליך הנ"ל ירוץ קבוע.
והמידע הוא בעצם אחד לכל הבקשות.
בכך אתה מיישב את מה שהקשיתי קודם למה הוא שם את זה מחוץ ל app.all.א"כ נותר לי רק לחשוב איך לעשות בדיקה במקביל לפי מספר הטלפון/ מספר שהוקש לבדיקת התקדמות ביעד האישי של התורם.
שם לכאורה יהיה לי בעיה לעבוד בצורה זו, שהרי אין לי צורך לבדוק את כולם, ואני חייב לבדוק לפי המספר המבוקש. -
שאלות של מתחיל - מקצועי ב nodejs@dovid
מה היא הדרך הכי טובה להפעיל את השרת ע"י SSH שהתהליך לא יסתיים לאחר סגירת החלון, ומצד שני שניתן יהיה כל הזמן לעדכן ולהריץ שינויים?
תודה