עדכון מתנגש

תיאור

עדכון מתנגש מתרחש כשב-review או ב-merchant יש כמה עדכונים (רשומות עם אותו מזהה review או merchant) עם תוכן שונה, אבל עם אותו last_update_timestamp. מכיוון שלרשומות האלה יש אותו last_update_timestamp, אנחנו לא יכולים לזהות איזה עדכון הוא האחרון.

איך לתקן

העברת review או merchant עם התוכן העדכני ביותר ועם last_update_timestamp מעודכן.

קונפליקטים ביצירת חותמות זמן

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

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

  1. שולחים שוב את review או את merchant עם הערך הנכון של create_timestamp ועם חותמת הזמן המעודכנת של העדכון האחרון.
  2. מודיעים לצוות התמיכה שאתם מתכוונים להשתמש בזמן היצירה החדש ומספקים את שם הקובץ שמכיל את הרשומה עם זמן היצירה החדש. צוות התמיכה מוודא שזמן היצירה החדש ישמש את המערכת ושלא תיווצר בעיית נתונים חדשה.

התנגשויות בשינוי העיצוב של XML

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

  1. צריך להסביר לצוות התמיכה למה עדכון last_update_timestamp לא סביר.
  2. יוצרים קובץ עם התוכן העדכני ביותר (במקרה הזה, אין צורך לעדכן את last_update_timestamp)
  3. מספקים לצוות התמיכה את שם הקובץ של התוכן העדכני ביותר. צוות התמיכה מוודא שנעשה שימוש בתוכן הכי עדכני.

דוגמה

ב-1 במרץ, אתם מעלים את קובץ הפיד 2017_03_01.xml לנקודת הקצה. הקובץ מכיל את התוכן הבא:

<review id="156368" mid="2739">
  <reviewer_name>Ada</reviewer_name>
  <create_timestamp>2017-02-25T03:02:23Z</create_timestamp>
  <last_update_timestamp>2017-02-25T03:02:23Z</last_update_timestamp>
  <country_code>US</country_code>
  <title>Great prices</title>
  <content>My order arrived on time and I got a great price.</content>
  <ratings>
    <overall min="1" max="10">9</overall>
    <customer_service min="1" max="10">10</customer_service>
  </ratings>
  <collection_method>after_fulfillment</collection_method>
</review>

ב-5 במרץ, אתם מעלים את קובץ הפיד 2017_03_05.xml לנקודת הקצה. הקובץ מכיל עריכה של משתמש בכותרת של ביקורת, אבל last_update_timestamp לא השתנה מהערך הקודם שנשלח לבדיקה הזו:

<review id="156368" mid="2739">
  <reviewer_name>Ada</reviewer_name>
  <create_timestamp>2017-02-25T03:02:23Z</create_timestamp>
  <last_update_timestamp>2017-02-25T03:02:23Z</last_update_timestamp>
  <country_code>US</country_code>
  <title>Great prices and customer service!</title>
  <content>My order arrived on time and I got a great price.</content>
  <ratings>
    <overall min="1" max="10"<9>/overall>
    <customer_service min="1" max="10"<10>/customer_service>
  </ratings>
  <collection_method>after_fulfillment</collection_method>
</review>

אחרי שקיבלתם הודעה מצוות התמיכה על בעיה בנתוני עדכון שגורמת להתנגשות, אתם מעלים את הקובץ 2017_03_10-fix.xml לנקודת הקצה כדי לפתור את הבעיה.

<review id="156368" mid="2739">
  <reviewer_name>Ada</reviewer_name>
  <create_timestamp>2017-02-25T03:02:23Z</create_timestamp>
  <last_update_timestamp>2017-03-04T02:01:20Z</last_update_timestamp>
  <country_code>US</country_code>
  <title>Great prices and customer service!</title>
  <content>My order arrived on time and I got a great price.</content>
  <ratings>
    <overall min="1" max="10">9</overall>
    <customer_service min="1" max="10">10</customer_service>
  </ratings>
  <collection_method>after_fulfillment</collection_method>
</review>