תפעול תור בשרת
-
יש לי שרת שמקבל נתונים על תור כל הזמן, אני צריך שהוא ישמור את הנתונים כל הזמן וישמור על הסדר של התור, לא יכניס פתאום את השלישי ראשון ואת הראשון אחרון, אלא שכל עוד הראשון בתור הוא ישאר ראשון, וברגע שהוא יצא מהתור, כולם יתקדמו לפי הסדר.
איך עושים את זה?השרת שולח בקשה ומקבל בתגובה מערך של שמות ואיפה הם נמצאים (צריך גם שרק מי שבמקום מסוים יהיה בתור).
-
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); ?>
אבל אני לא סומך עליו, עברתי איתו הרבה תלאות, גם הצלחות אבל גם תלאות...
-
יש למישהו חוות דעת על הקוד הנ"ל?
-
אין עליכם