Tomoko の 赛博酒吧
太太太太抱歉了,我也没有想到睡着之后出bug了😱
找到 BUG 所在了, 逻辑是拿到 staticData 的最后一条的 id , 然后再循环 RSS 的 item 列表去匹配这个 id , 将这个 id 前的 item 都给发过来。

例如 items = [ 5, 4, 3, 2, 1 ], lastItemId = 3, 那么此时我就会将 5 4 这两个以 4 5 的顺序发出来。 然后更新 lastItemId 为 5。

而昨天的问题在于, xlog 的 RSS 不稳定, 时而是 [ 5, 4, 3, 2, 1 ], 时而是 [ 4, 3, 2, 1 ]。

就导致从 [ 5, 4, 3, 2, 1 ] 到 [ 4, 3, 2, 1 ] 的过程中,因为找不到 5 的 id, 所以直接将 1 2 3 4 发出来了。

所以昨晚深夜就是不断地在 1 2 3 4 + 5 这样在发~~


const staticData = getWorkflowStaticData('global');
const lastItemId = staticData.lastItemId;

...

if (lastItemId) {
  for (const item of items) {
    if (getId(item) === lastItemId) {
      break;
    }
    newItems.push(item)
  }
} else {
  newItems = [firstItem]
}

...
return newItems.reverse()


#事出反常必有妖
 
 
Back to Top