בירור טלפוני קצר של התאמה לתנאי המשרה המוצעת ואז שיחת טלפון קצרה עם המגייסת ואז ראיון פרונטלי מקצועי עם שאלת מערכות אחת ואז נפלתי, אבל במקור היה אמור להיות עוד ראיון עם מנהלת הפרוייקט ו-HR ואז סיווג בטחוני.
שאלות מתוך הראיון
יש לך תור של הודעות נכנסות ולכל הודעה יש ID לא ייחודי. כיצד תנהלי את עיבוד ההודעות במקביל (Multi-workers) בצורה יעילה, כך ששני וורקרים לא יעבדו בו-זמנית על הודעות עם ID זהה? המטרה היא למקסם את קצב העיבוד (Throughput) ולוודא שוורקרים לא יחכו ללא צורך.
תשובות
הוסף תשובה
|
לצפיה בתשובות
מרץ 2026
עקרונות הפתרון: ניהול עיבוד מקבילי מבוסס מפתחות
מנגנון Distributed Locking ברמת ה-ID:
שימוש במבנה נתונים מסוג HashSet המשותף לכל הוורקרים (למשל בתוך Redis) כדי לעקוב בזמן אמת אחרי ה-IDs שנמצאים כרגע בתהליך עיבוד ("In-Flight").
מניעת התנגשויות (Concurrency Control):
לפני שוורקר מושך הודעה, הוא בודק ב-HashSet האם ה-ID שלה כבר קיים.
אם ה-ID לא קיים: הוא מוסיף אותו ל-HashSet ומתחיל בעיבוד.
אם ה-ID קיים: הוורקר מדלג להודעה הבאה בתור (כדי לא להמתין סתם) או מעביר את ההודעה לתור המתנה ייעודי לאותו ID.
שחרור וניקוי (Cleanup):
עם סיום העיבוד, הוורקר מסיר את ה-ID מה-HashSet, ובכך "משחרר" את המפתח הזה לעיבוד של ההודעה הבאה בתור עם אותו מזהה.
היה תהליך ארוך שתי ראיונות וסיווג ביטחוני אבל היה נהדר אחלה אנשים אחלה צוות
שאלות מתוך הראיון
You have Array in size of N with 3 colors, 1=Red, 2=Green, 3=Yellow, the array is not sorted.
Need to re-arrange (sort) the array in a way that first all the greens, then all the Reds and last section are all the Yellow (2,1,3)
אלביט מערכות בע"מ היא חברה ישראלית העוסקת בפיתוח ובייצור של מערכות אלקטרוניות ואמצעי לחימה מתקדמים. אלביט מערכות מפתחת, משווקת ומבצעת אינטגרציה של מערכות אלקטרוניות ואלקטרו-אופטיות ביטחוניות מתקדמות ללקוחות בכל רחבי העולם. החברה מתמקדת בפיתוח מערכות שליטה ובקרה, ומערכות מודיעין לשוק הצבאי, בביצוע השבחות של כלי טיס, כלי שיט ורכבים ובפיתוח ומסירה של מערכות כלי טיס בלתי מאוישים.