בקשה | ניהול תור בשרת
-
יש לי שרת שמקבל נתונים על תור כל הזמן, אני צריך שהוא ישמור את הנתונים כל הזמן וישמור על הסדר של התור, לא יכניס פתאום את השלישי ראשון ואת הראשון אחרון, אלא שכל עוד הראשון בתור הוא ישאר ראשון, וברגע שהוא יצא מהתור, כולם יתקדמו לפי הסדר.
איך עושים את זה?השרת שולח בקשה ומקבל בתגובה מערך של שמות ואיפה הם נמצאים (צריך גם שרק מי שבמקום מסוים יהיה בתור).
-
- שרת שלי -> שרת חברה - כל שלוש שניות בערך - כמה אנשים בתור ואיפה
- שרת חברה -> שרת שלי - רשימה של כלל המאזינים ואיפה כל אחד נמצא
- שרת שלי - בודק מי נמצא בשלוחה X, מי שנמצא בה מתווסף לרשימת המתנה לפי הכללים.
כללי רשימת המתנה:
מי שחדש שם - מתווסף לסוף.
מי שהיה כבר ועדיין שם - נשאר במקומו בתור או מתקדם אם הראשון/מישהו שלפניו בתור עזב.
מי שהיה ועזב (ז"א כבר לא מופיע בשלוחה) - יוצא מהתור ואלו שאחריו מתקדמים לפי התור.
אני צריך את "כללי רשימת המתנה".
מקווה שעכשיו יותר ברור
-
- שרת שלי -> שרת חברה - כל שלוש שניות בערך - כמה אנשים בתור ואיפה
- שרת חברה -> שרת שלי - רשימה של כלל המאזינים ואיפה כל אחד נמצא
- שרת שלי - בודק מי נמצא בשלוחה X, מי שנמצא בה מתווסף לרשימת המתנה לפי הכללים.
כללי רשימת המתנה:
מי שחדש שם - מתווסף לסוף.
מי שהיה כבר ועדיין שם - נשאר במקומו בתור או מתקדם אם הראשון/מישהו שלפניו בתור עזב.
מי שהיה ועזב (ז"א כבר לא מופיע בשלוחה) - יוצא מהתור ואלו שאחריו מתקדמים לפי התור.
אני צריך את "כללי רשימת המתנה".
מקווה שעכשיו יותר ברור
-
@עידו300 שלב 1 הוא כדי לזהות מי יצא מהתור ושלב 3 מי נכנס לתור
הבנתי נכון? או ששלב 1 ושלב 3 הם עם אותה מטרה?@צדיק-תמים תכלס 3 זה העיקר, הוא בודק מי חדש בשלוחה מי עדיין שם ומי עזב. שלב 1 ו2 הם רק כדי להשיג את המידע שיעובד בשלב 3
-
@צדיק-תמים תכלס 3 זה העיקר, הוא בודק מי חדש בשלוחה מי עדיין שם ומי עזב. שלב 1 ו2 הם רק כדי להשיג את המידע שיעובד בשלב 3
-
@עידו300 אז אתה מנהל אצלך סטייט של תור, כלומר פשוט מערך,
כל פעם אתה עובר על מי שבשלוחה, דוחף לסוף המערך (array_push
) את מי שלא קיים במערך ונמצא בשלוחה X, ומוציא מהמערך (array_splice
) את מי שבמערך אבל כבר לא בשלוחה@צדיק-תמים כן את זה אני יודע השאלה היא איך עושים את זה בPHP אני מכיר רק C#... ואיפה שומרים את זה הרי קוד PHP רץ כל פעם מחדש לא? אין לו זכרון שזה נשמר בו
-
@צדיק-תמים כן את זה אני יודע השאלה היא איך עושים את זה בPHP אני מכיר רק C#... ואיפה שומרים את זה הרי קוד PHP רץ כל פעם מחדש לא? אין לו זכרון שזה נשמר בו
@עידו300 בשביל זה יש גוגל או GPT, זה ממש דברים בסיסיים של השפה (אגב אם אתה יודע רק C# למה אתה רוצה לכתוב את הקוד הזה דווקא בPHP?)
לשמור מידע בPHP שרץ פר בקשה על ידי שרת האינטרנט - SESSION, קובץ JSON, דאטהבייס... אבל מהתיאור שלך לא היה נשמע שזה צריך לרוץ דווקא כתגובה לבקשה אלא יכול גם לרוץ ברצף ברקע -
@עידו300 בשביל זה יש גוגל או GPT, זה ממש דברים בסיסיים של השפה (אגב אם אתה יודע רק C# למה אתה רוצה לכתוב את הקוד הזה דווקא בPHP?)
לשמור מידע בPHP שרץ פר בקשה על ידי שרת האינטרנט - SESSION, קובץ JSON, דאטהבייס... אבל מהתיאור שלך לא היה נשמע שזה צריך לרוץ דווקא כתגובה לבקשה אלא יכול גם לרוץ ברצף ברקע@צדיק-תמים נכון, איך עושים שירוץ ברקע?
C# לא רץ על השרת שלי... אחרת הייתי כותב בה
-
@צדיק-תמים נכון, איך עושים שירוץ ברקע?
C# לא רץ על השרת שלי... אחרת הייתי כותב בה
-
@צדיק-תמים שרת עם סייבר פאנל בהטסנר אני חושב
-
@צדיק-תמים שרת עם סייבר פאנל בהטסנר אני חושב
-
@צדיק-תמים כתב בבקשה | ניהול תור בשרת:
@עידו300 אם זה שרת רגיל למה אתה לא מתקין עליו C#?
כי אני לא מבין בזה כלום...
גם נראה לי שהשרת חלש מאוד ואין לו הרבה זכרון.אני מצליח להסתדר עם כתיבת קוד וספריות תראה לדוגמא את עמוד הבית (שכבר לא בתוקף אבל עוד פעיל...) בניתי לבד בהכוונת GPT היה קשוח אבל הסתדרתי, בניתי גם כמה API שהייתי צריך (אתה יכול לראות ב023130310 שלוחה 2), אבל תכלס לעומק לא יודע מה עושים.
-
@צדיק-תמים כתב בבקשה | ניהול תור בשרת:
@עידו300 אם זה שרת רגיל למה אתה לא מתקין עליו C#?
כי אני לא מבין בזה כלום...
גם נראה לי שהשרת חלש מאוד ואין לו הרבה זכרון.אני מצליח להסתדר עם כתיבת קוד וספריות תראה לדוגמא את עמוד הבית (שכבר לא בתוקף אבל עוד פעיל...) בניתי לבד בהכוונת GPT היה קשוח אבל הסתדרתי, בניתי גם כמה API שהייתי צריך (אתה יכול לראות ב023130310 שלוחה 2), אבל תכלס לעומק לא יודע מה עושים.
-
@צדיק-תמים אני באמת מעדיף c# אני פשוט לא חושב שהשרת שלי יסתדר איתו הן בהתקנה והן בהרצה, הוא מאוד חלש, כזה:
2 vCPU
4 GB RAM
40 GB Disk local -
@צדיק-תמים אני באמת מעדיף c# אני פשוט לא חושב שהשרת שלי יסתדר איתו הן בהתקנה והן בהרצה, הוא מאוד חלש, כזה:
2 vCPU
4 GB RAM
40 GB Disk local -
@עידו300 זה ממש לא מפרט חלש, אולי אתה רגיל לשרתי זבל כמו קונטאבו שאין קשר בין המפרט המוצהר למציאות
@צדיק-תמים טוב שאתה אומר.
אז תכלס מה אני צריך עשות? -
@עידו300 זה ממש לא מפרט חלש, אולי אתה רגיל לשרתי זבל כמו קונטאבו שאין קשר בין המפרט המוצהר למציאות
@צדיק-תמים זו ההצעה של GPT
<?php define('QUEUE_FILE', 'queue.json'); // קובץ שישמור את התור // פונקציה לקרוא את התור מהקובץ function loadQueue() { if (!file_exists(QUEUE_FILE)) { file_put_contents(QUEUE_FILE, json_encode([])); } return json_decode(file_get_contents(QUEUE_FILE), true); } // פונקציה לשמור את התור לקובץ function saveQueue($queue) { file_put_contents(QUEUE_FILE, json_encode($queue, JSON_PRETTY_PRINT)); } // פונקציה לעדכן את התור function updateQueue($newData, $validLocation) { $queue = loadQueue(); // קריאת התור הקיים // סינון האנשים שרק מהמיקום הרצוי $filteredData = array_filter($newData, function ($person) use ($validLocation) { return $person['location'] === $validLocation; }); // יצירת רשימה של שמות בלבד $newNames = array_column($filteredData, 'name'); // שמירה על סדר: מי שכבר בתור - נשאר $updatedQueue = array_values(array_intersect($queue, $newNames)); // הוספת חדשים לסוף foreach ($newNames as $name) { if (!in_array($name, $updatedQueue)) { $updatedQueue[] = $name; } } saveQueue($updatedQueue); // שמירת התור המעודכן return $updatedQueue; } // קבלת הנתונים מהשרת (הדמיה של POST) $dataFromServer = json_decode(file_get_contents('php://input'), true); // רק מי שנמצא במקום 6 ייכנס לתור $validLocation = "6 "; // עם רווח אחרי ה-6 כפי שביקשת // עדכון התור והחזרת התוצאה $resultQueue = updateQueue($dataFromServer, $validLocation); echo json_encode($resultQueue); ?>
-
@צדיק-תמים טוב שאתה אומר.
אז תכלס מה אני צריך עשות?