Przeglądaj źródła

Appの発行依頼情報をインターバルでfetchするように修正

排他エラーとなる確率を下げるため
develop
sosuke.iwabuchi 2 lat temu
rodzic
commit
0f45d3ce14
1 zmienionych plików z 25 dodań i 4 usunięć
  1. +25
    -4
      src/contexts/AppContext.tsx

+ 25
- 4
src/contexts/AppContext.tsx Wyświetl plik

@@ -45,11 +45,18 @@ export function AppContextProvider({ children }: Props) {
const checkTokenAPI = useAPICall({
apiMethod: checkToken,
onSuccess: (res, sendData) => {
setTokenResult("ok");
_setToken(sendData.access_token);
setReceiptIssuingOrder(res.data.receipt_issuing_order);
if (receiptIssuingOrder === null) {
setTokenResult("ok");
_setToken(sendData.access_token);
setStore(StoreId.ACCESS_TOKEN, sendData.access_token);
}

setStore(StoreId.ACCESS_TOKEN, sendData.access_token);
// 再Fetch用 タイムスタンプが違う場合のみ取り込む
const lastTimestamp = receiptIssuingOrder?.updated_at ?? "";
if (lastTimestamp !== res.data.receipt_issuing_order.updated_at) {
console.info("発行依頼情報読込");
setReceiptIssuingOrder(res.data.receipt_issuing_order);
}
},
onFailed: () => {
setTokenResult("ng");
@@ -89,6 +96,20 @@ export function AppContextProvider({ children }: Props) {
}
}, [paramToken]);

// 定期的にFetchする
// 排他エラーとなる確率を下げるため
useEffect(() => {
if (token) {
const interval = setInterval(() => {
fetch();
}, 5 * 1000);

return () => {
clearInterval(interval);
};
}
}, [token]);

return (
<AppContext.Provider
value={{


Ładowanie…
Anuluj
Zapisz