שתף באמצעות


המלצות לפיתוח משימות רקע

חלות על המלצה זו של רשימת משימות לביצוע של Well Architected Framework Reliability של Power Platform:

RE:05 חזקו את יכולת ההתאוששות המהירה של עומס העבודה שלכם על ידי הטמעת טיפול בשגיאות וטיפול בתקלות חולפות. בניית יכולות בפתרון לטיפול בתקלות רכיבים ושגיאות חולפות.

מדריך זה מתאר את ההמלצות לפיתוח משימות רקע. משימות רקע פועלות באופן אוטומטי ללא צורך באינטראקציה של המשתמש. אפליקציות רבות דורשות משימות רקע הפועלות ללא תלות בממשק המשתמש (UI).

דוגמאות למשימות רקע כוללות משימות אצווה, משימות עיבוד אינטנסיביות ותהליכים ארוכי טווח, כגון זרימות עבודה. האפליקציה מתחילה את המשימה ומעבדת בקשות אינטראקטיביות ממשתמשים.

לדוגמה, ייתכן שאפליקציה תצטרך ליצור סיכום ולחלץ סנטימנט ונקודות מפתח ממסמכים שמשתמשים מעלים. ניתן לבצע משימת רקע כדי להפעיל את פעולות הבינה המלאכותית לשמור את הסיכום ונקודות המפתח במסד הנתונים. המשתמש לא צריך לחכות להשלמת התהליך. דוגמה נוספת, משתמש עשוי להגיש בקשה להוצאה, אשר יוזמת זרימת עבודה ברקע המעבדת את בקשת ההוצאה ומגישה אותה לאישור. המשתמש יכול להמשיך לבקש בקשת הוצאה נוספת או לצאת מהאפליקציה בזמן שמשימת הרקע פועלת. לאחר סיום משימת הרקע, נשלח דואר אלקטרוני למשתמש כדי לאשר בקשת ההוצאות הוגשה לאישור.

משימות רקע עוזרות למזער את העומס על ממשק המשתמש של האפליקציה, מה שמשפר את הזמינות ומצמצם את זמן התגובה האינטראקטיבי.

אסטרטגיות מרכזיות בתכנון

כדי לבחור איזו משימה לייעד כמשימת רקע, יש לשקול אם המשימה פועלת ללא אינטראקציה של המשתמש והאם ממשק המשתמש צריך להמתין להשלמת המשימה. משימות הדורשות מהמשתמש או ממשק המשתמש להמתין בזמן שהן פועלות אינן בדרך כלל משימות רקע מתאימות.

‏סוגי משימות רקע‬

דוגמאות למשימות רקע הן:

  • משימות עתירות משאבים שהשלמתן אורכת זמן רב, כגון הפעלת סדרה של עסקאות.

  • משימות אצווה, כגון עדכוני נתונים ליליים או עיבוד מתוזמן.

  • זרימות עבודה ארוכות טווח, כגון מילוי הזמנות או אספקת שירותים ומערכות.

  • זרימות עבודה הדורשות שיתוף פעולה אסינכרוני, כגון אישורים.

  • עיבוד נתונים רגישים המעביר את המשימה למקום מאובטח יותר לעיבוד. לדוגמה, ייתכן שאינך רוצה לעבד נתונים רגישים בתוך אפליקציית אינטרנט. במקום זאת, אפשר להשתמש בתבנית כגון תבנית Gatekeeper כדי להעביר את הנתונים לתהליך רקע מבודד שיש לו גישה לאחסון מוגן.

גורמים מפעילים

איתחול משימות רקע באמצעות:

גורמים מפעילים מונחי אירועים

פעולה מפעילה הפעלה מונחית אירועים שמתחילה את משימת הרקע. דוגמאות לגורמים מפעילים מונחי אירועים כוללים:

  • ממשק המשתמש או משימה אחרת מפעילים את משיממת הרקע ומעבירים נתונים מהפעולה שבוצעה למשימת הרקע. לדוגמה, משתמש מגיש בקשה להחזר הוצאה באמצעות טופס, ופרטי הטופס מועברים למשימת הרקע לעיבוד.

  • ממשק המשתמש או משימה אחרת שומרת או מעדכנת ערך שנמצא באחסון. משימת הרקע עוקבת אחר האחסון ומזהה שינויים, כגון ערכים חדשים שמתווספים או שינוי ערכים קיימים, ומפעילה את משימות הרקע בהתבסס על שינוי זה.

  • ממשק המשתמש או משימה אחרת שולחים בקשה לנקודת קצה, כגון כתובת ה- URI של HTTPS או API שנחשף כשירות אינטרנט. כחלק מהבקשה, ממשק המשתמש או המשימה מעבירים את הנתונים הנדרשים למשימת הרקע. נקודת קצה או שירות האינטרנט מפעיל את משימת הרקע, המשתמשת בנתונים כקלט שלה.

דוגמאות אחרות לגורמים מפעילים מונחי אירועים כוללים טופס שנשלח באפליקציה, שורה חדשה שמתווספת למאגר נתונים, ערך שדה שמשתנה במאגר נתונים, הודעות דואר אלקטרוני עם נושא ספציפי או משולח ספציפי שהגיעו לתיבת הדואר הנכנס, וקובץ שהועלה למיקום לאחסון קבצים.

יש להשתמש בתנאים מפעילים כדי לייעל את זרימות העבודה שלך ולהפחית את מספר ההפעלות המיותרות. תנאים מפעילים מגדירים תנאים מרובים שיש לעמוד בהם לפני הפעלת זרימת עבודה.

הערה

יש להקפיד להשתמש בתנאים מפעילים כדי למנוע לולאות אינסופיות אם, כחלק מתהליך העבודה, משתנה מקור נתונים שמתחיל את זרימת העבודה. לדוגמה, האפליקציה עשויה לשנות שדות בשורה של טבלת Microsoft Dataverse, וזרימת העבודה מבצעות שאילתות נוספות על סמך אותם שדות שהשתנו, תוך שינוי נוסף של אותה שורה. יש להשתמש בתנאים מפעילים כדי להתחיל את זרימת העבודה רק כאשר השדות שהאפליקציה משנה מתעדכנים, אך לא שדות אחרים.

גורמים מפעילים מונחי לוח זמנים

פעולה מפעילה בקשה מונחית לוח זמנים שמתחילה את משימת הרקע. דוגמאות לגורמים מפעילים מונחי לוח זמנים כוללים:

  • משימת רקע הפועלת על בסיס יומי או שבועי ומבצעת סט של פעולות.

  • תהליך או אפליקציה נפרדים מפעילים טיימר שמפעיל את משימת הרקע לאחר עיכוב זמן או בשעה מסוימת.

דוגמאות אחרות למשימות שמתאימות להפעלת מונחית לוח זמנים כוללות שגרות עיבוד אצווה (כגון עדכון רשימות מוצרים קשורים עבור לקוחות על סמך אופן הפעולה שלהם מהזמן האחרון), משימות עיבוד נתונים שגרתיות (כגון הפקת תוצאות מצטברות), ניתוח נתונים לדוחות יומיים, ניקוי שמירת נתונים ובדיקות עקביות נתונים.

החזרת תוצאות

משימות רקע פועלות באופן אסינכרוני בתהליך נפרד מהממשק או מהתהליך שהפעיל את עבודת הרקע. באופן אידיאלי, משימות רקע הן פעולות שאפשר להפעיל ולשכוח. ההתקדמות שלהן בזמן הריצה אינה משפיעה על ממשק המשתמש או על תהליך הקריאה, מה שאומר שתהליך הקראיה אינו ממתין להשלמת המשימות. ממשק המשתמש ותהליך הקריאה לא יכולים לזהות מתי המשימה מסתיימת.

אם אתה זקוק למשימת רקע כדי לתקשר עם משימת הקראיה כדי לציין התקדמות או סיום, יש ליישם מנגנון כמו:

  • כתיבת ערך מחוון מצב לאחסון הנגיש לממשק המשתמש או למשימת הקריאה, שיכול לנטר או לבדוק ערך זה. נתונים אחרים שמשימת הרקע מחזירה לקורא יכולים להיות ממוקמים באותו אחסון.

  • משיפת ממשק API או נקודת קצה ממשימת הרקע שאליה הממשק או הקורא יכולים לגשת כדי לקבל מידע על המצב. התגובה יכולה לכלול את הנתונים שמשימת הרקע מחזירה לקורא.

  • יש להגדיר את משימת הרקע כך שתגיב עם המצב או הנתונים שהיא עיבדה בחזרה לממשק המשתמש.

קואורדינציה

משימות רקע יכולות להיות מורכבות ומספר משימות עשויות להידרש להפעלתן. בתרחישים אלה, מקובל לחלק את המשימה לשלבים נפרדים קטנים יותר, או למשימות משנה שצרכנים מרובים יכולים להפעיל. משימות מרובות שלבים הן יעילות יותר וגמישות יותר מכיוון ששלבים בודדים ניתנים לרוב לשימוש חוזר במספר משימות. קל גם להוסיף, להסיר או לשנות את סדר השלבים.

זה יכול להיות מאתגר לתאם משימות ושלבים מרובים, אבל יש שלושה דפוסים נפוצים שינחו את הפתרון שלך:

  • פירוק משימה למספר שלבים לשימוש חוזר. אפליקציה עשויה להידרש לבצע משימות שונות במורכבות שונה במידע שהיא מעבדת. גישה פשוטה אך לא גמישה ליישום אפליקציה כזו היא לבצע עיבוד זה כמודול מונוליטי. אבל גישה זו צפויה לצמצם את ההזדמנויות לעיבוד מחדש של הקוד, מיטוב שלו או שימוש חוזר בו אם האפליקציה דורשת חלקים מאותו עיבוד במקום אחר.

  • ניהול של תזמור השלבים של משימה. יישום עשוי לבצע משימות הכוללות שלבים רבים, שחלקם עשוי להפעיל שירותים מרוחקים או לגשת למשאבים מרוחקים. לפעמים השלבים הבודדים אינם תלויים זה בזה, אבל הם מתוזמרים על ידי לוגיקת האפליקציה שמיישמת את המשימה.

  • נהל את ההתאוששות עבור שלבי משימה שנכשלו. אם אחד או יותר מהשלבים נכשלים, ייתכן האפליקציה תצטרך לבטל את העבודה שמתבצעת על ידי סדרה של שלבים, אשר יחד מגדירים פעולה עקבית בסופו של דבר.

שיקולי יכולת התאוששות מהירה

ניתן ליצור משימות רקע עם יכולת התאוששות מהירה כדי לספק שירותים אמינים לאפליקציה. בעת התכנון והעיצוב של משימות רקע, יש לקחת בחשבון את הנקודות הבאות:

  • משימות רקע צריכות לטפל באתחול מחדש בחן מבלי לפגוע בנתונים או להכניס חוסר עקביות לאפליקציה. עבור משימות ארוכות או מרובות שלבים, יש לשקות שימוש בנקודות ביקורת. ניתן להשתמש בנקודות ביקורת כדי לשמר את מצב המשימות באחסון מתמשך או כהודעות בתור ולהגדיר לוגיקת ניסיון חוזר במקרה של כשלים בלתי צפויים של פעולה.

  • כשמשתמשים בתורים כדי לתקשר עם משימות רקע, התורים יכולים לשמש כמאגר לאחסון בקשות שנשלחות למשימות בזמן שהאפליקציה נמצאת בעומס גבוהה מהרגיל. המשימות יכולות להדביק את הפער עם ממשק המשתמש בתקופות פחות עמוסות, והפעלה מחדש אינה חוסמת את ממשק המשתמש.

שיקולי שינוי קנה מידה וביצועים

משימות רקע חייבות להציע ביצועים מספקים כדי להבטיח שהן לא יחסמו את האפליקציה או יעכבו את הפעולה כאשר המערכת תחת עומס. בדרך כלל, הביצועים משתפרים כאשר משנים את מופעי המחשוב המארחים את משימות הרקע. בעת התכנון והעיצוב של משימות רקע, יש לקחת בחשבון את הנקודות הבאות הקשורות לשינוי קנה מידה ולביצועים:

  • משימות רקע עשויות להשפיע על חווית המשתמש אם התוצאות של משימות הרקע יוצגו למשתמש. לדוגמה, משימות רקע עשויות לדרוש מהמשתמש להמתין להתראה, לרענן את הדף או לבדוק באופן ידני את מצב המשימה. אופני פעולה אלה אלו יכולות להגביר את מורכבות האינטראקציה של המשתמש ולהשפיע לרעה על חווית המשתמש. יש לשקול חלופות להגבת נתונים חזרה לממשק המשתמש, כגון שליחת הודעה בדואר אלקטרוני או ב- Microsoft Teams, או הכללת היכולת לבדוק עדכוני מצב בממשק המשתמש שלך. בדוגמה שלנו של שליחת טופסי הוצאות, במקום להחזיר את המצב לממשק המשתמש, יכול להיות לך דף באפליקציה המפרט את כל טפסי ההוצאות שנשלחו עם המצב שלהם והיכולת להפעיל רענון.

  • משימות רקע יכולות ליצור אתגרים עבור סנכרון נתונים ותיאום תהליכים, במיוחד אם משימות הרקע תלויות זו בזו או במקורות נתונים אחרים. לדוגמה, משימות רקע עשויות לטפל בבעיות עקביות נתונים, מרוץ תהליכים, מבוי סתום או זמן קצוב.

  • כדי למנוע אובדן ביצועים תחת עומס, ייתכן שכדאי להטמיע לוגיקה כך שנקודה אחת בשרשרת העיבוד לא תגרום לצוואר בקבוק. כדאי לקחת בחשבון מגבלות אחרות, כגון התפוקה המקסימלית של פעולות זרימת עבודה, אחסון ושירותים אחרים שהאפליקציה ומשימות הרקע מסתמכות עליהם.

פשרות: משימות רקע מוסיפות רכיבים ויחסי תלות נוספים למערכת, דבר שיכול להגדיל את המורכבות אל עליות התחזוקה של הפתרון. לדוגמה, משימות רקע עשויות לדרוש שירות ניטור נפרד ומנגנון ניסיון חוזר.

סיוע של Power Platform

הסעיפים הבאים מתארים את השירותים שבהם ניתן להשתמש כדי לארח, להפעיל, להגדיר ולנהל משימות רקע.

Power Automate

זרימות ענן של Power Automate הן זרימות עבודה הפועלות בענן. הן יכולות להיות זרימות אוטומטיות המופעלות על ידי אירוע, כגון קבלת הודעת דואר אלקטרוני מאדם ספציפי. הן יכולות להיות זרימות מיידיות שניתן להתחיל בלחיצת כפתור, כמו תזכורת לצוות שלך שנשלחות מהמכשיר הנייד שלך. הן יכולות להיות זרימות מתוזמנות הפועלות בשעה מסוימת, כגון העלאת נתונים יומית ל- SharePoint או למסד נתונים. ניתן גם לבצע אוטומציה של משימות שחוזרות על עצמן מהשולחן העבודה או מהמכשיר הנייד שלך.

מומלץ להכיר את המגבלות של זרימות אוטומטיות, מתוזמנות ומיידיות בהקשר של תפוקה, בקשה, התרחשות בו-זמנית, לולאה וביטול ביצוע פעולות אצווה. יש לוודא שמגבלות האלה נלקחו בחשבון במהלך עיצוב זרימת העבודה שלך.

ניתן להפחית את הסיכון על ידי תכנון לטיפול בשגיאות.

Microsoft Dataverse

עמודות מחושבות וסיכומים של Microsoft Dataverse:

  • עמודות נוסחה הן עמודות שמציגות ערך מחושב בטבלת Microsoft Dataverse.

  • עמודות מחושבות מבצעות אוטומציה לחישובים ידניים המשמשים בתהליכים העסקיים שלך. לדוגמה, ייתכן שאיש מכירות ירצה לדעת מהי ההכנסה המשוקללת עבור הזדמנות, שמבוססת על הכנסה משוערת מהזדמנות כפול ההסתברות. לחלופין, הן מנסות להחיל הנחה, באופן אוטומטי, אם הזמנה גדולה מסכום מסוים. עמודה מחושבת יכולה להכיל ערכים כמו התוצאה של מפעולות מתמטיות פשוטות, או פעולות מותנות, כגון 'גדול-מ' או If-Else.

  • עמודות סיכום עוזרות למשתמשים לקבל תובנות על הנתונים על-ידי ניטור מדדי מפתח בעסק. עמודת סיכום מכילה ערך צבירה שמחושב בכל השורות הקשורות לשורה שצוינה. זה כולל טבלאות רגילות וטבלאות פעילות, כגון הודעות דואר אלקטרוני ופגישות. בתרחישים מורכבים יותר, תוכל לצבור נתונים דרך ההירארכיה של השורות. בתור מנהל מערכת או אחראי על התאמה אישית, באפשרותך להגדיר עמודות סיכום באמצעות כלי ההתאמה האישית ב- Power Apps, ללא צורך לכתוב קוד.

פעולות רקע יכולות לשלוח בקשות ש- Dataverse מעבדת באופן אסינכרוני. פעולות רקע שימושיות כאשר אינך רוצה לשמור על חיבור בזמן הפעלת בקשה.

יישומי plug-in הם יישומים מותאמים אישית לטיפול באירועים שפועלים בתגובה לאירוע ספציפי שהועלה במהלך עיבוד של פעולת נתונים ב- Microsoft Dataverse.

Microsoft Dataverse מציע גם פתרון רב עוצמה להשגת ארכיטקטורת נתונים יעילה יותר והפחתת עומס העבודה בצד הלקוח באמצעות יישומי plug-in בתכנות פשוט. יישומי plug-in אלה הם זרימות עבודה ניתנות לשימוש חוזר בזמן אמת שמבצעות קבוצה מסוימת של פקודות בתוך Dataverse, הפועלות בצד השרת ומופעל על ידי יישומים מותאמים אישית לטיפול באירועים.

רשימת בדיקה לאמינות

עיין במכלול ההמלצות המלא.