Pembuatan versi entitas

Setiap entitas yang dikirim ke Google, baik melalui feed maupun pembaruan real-time, memiliki versi yang melekat padanya. Versi ini hadir dalam bentuk stempel waktu. Di beberapa feed, stempel waktu dapat diberikan untuk setiap entity yang menggunakan dateModified . Jika atribut tidak disertakan dalam entitas feed, versinya adalah yang disetel ke waktu mulai penyerapan feed. Dalam update real-time batchPush dan batchDelete, masing-masing, kolom generation_timestamp dan delete_time digunakan untuk mengatur versi. Jika kolom tidak disertakan, versi akan ditetapkan ke waktu saat permintaan diterima. Lihat format waktu yang diharapkan nilai-nilai dalam skema inventaris relasional.

Google hanya memproses entitas (misalnya: restoran, menu, atau layanan) dengan versi yang sama dengan atau lebih baru dari versi yang terakhir diterima. Jika tidak, entity tidak diserap dan error Entitas Usang dicatat. Jika entitas diperbarui dengan versi baru, stempel waktu terakhir diubah akan waktu saat ini diperbarui.

Contoh

Misalnya feed dibuat pada 16 Juni pukul 01.10 UTC dengan contoh berikut entitas yang disertakan.

{
  "@type": "Restaurant",
  "@id": "restaurant12345",
  "dateModified": "2022-06-16T01:10:00.000Z",
  ...
}

Feed belum ditransfer oleh Google. Kemudian pada hari itu pukul 2022-06-16T01:22:00.000Z, Google menerima Permintaan batchPush update real-time dengan hal berikut entitas.

{
  "records": [
    {
      "data_record": "{\"@type\": \"Restaurant\",\"@id\": \"restaurant12345\" ...",
      "generation_timestamp": "2022-06-16T01:20:00.000Z"
    }
  ]
}

Versi untuk ID entitas restoran restaurant12345 sekarang adalah 2022-06-16T01:20:00.000Z dan stempel waktu entity terakhir diubah telah disetel ke 2022-06-16T01:22:00.000Z. Singkatnya, waktu perubahan terakhir adalah waktu entitas telah diperbarui di inventaris Google dan versinya adalah generation_timestamp dari permintaan update real-time atau Nilai dateModified dari feed.

Proses transfer feed akan dimulai pada 16 Juni pukul 02.00 UTC. Dalam situasi ini, entitas yang diterima di feed dengan versi 2022-06-16T01:10:00.000Z adalah dianggap basi dan tidak diserap. Oleh karena itu, Google terus melayani dengan versi 2022-06-16T01:20:00.000Z dari permintaan update real-time.

Praktik terbaik:

  • Implementasikan stempel waktu dalam feed untuk setiap entity.
  • Terapkan perubahan update real-time ke feed berikutnya dan tolong atur Stempel waktu dateModified di entitas feed ke waktu saat ini saat Anda yang membuat feed.