Closed Senna46 closed 2 years ago
XRPLのTxはPromise.allの並列化ができないため,forループで直列処理しているが,Firebase Functionに540秒の制限がある。 Tx 9件で合計76秒を要しており,単純計算で50アカウント以上ある場合にタイムアウトする可能性がある。
Promise.all
処理するtxすべてを作成するのに必要な配列を何かしらのドキュメントにいれて、それのoncreateを発火させる n個だけforで処理して、処理したものは配列から除いて、またその残りの配列でDocument作ってoncreate発火させる
Single-price AuctionのTxについては検証で引っかからなかっただけの可能性があるためすべてのXRPLを使用する関数でこれをしないといけない可能性がある。
改修が必要な箇所 (上から順に同時発生するTxが多い)
[ ] dailyPaymentOnCreate
[ ] monthlyUsageOnCreate
[ ] normalSettlementOnCreate
[ ] renewableSettlementOnCreate
問題
XRPLのTxは
Promise.all
の並列化ができないため,forループで直列処理しているが,Firebase Functionに540秒の制限がある。 Tx 9件で合計76秒を要しており,単純計算で50アカウント以上ある場合にタイムアウトする可能性がある。解決案
処理するtxすべてを作成するのに必要な配列を何かしらのドキュメントにいれて、それのoncreateを発火させる n個だけforで処理して、処理したものは配列から除いて、またその残りの配列でDocument作ってoncreate発火させる
備考
Single-price AuctionのTxについては検証で引っかからなかっただけの可能性があるためすべてのXRPLを使用する関数でこれをしないといけない可能性がある。