ત્રણ APIs માટે ત્રણ સ્લીપ ઇન્ટરવલ
મેં એપ્રિલમાં ત્રણ ડિરેક્ટરી સાઇટ્સ માટે ETL પાઇપલાઇન્સ બનાવી હતી. દરેક સાઇટ અલગ API નો ઉપયોગ કરે છે: Steam, GitHub, અને HuggingFace.
મારે દરેક માટે સ્લીપ ઇન્ટરવલ સેટ કરવા પડ્યા હતા. તેના આંકડા, નિષ્ફળતાના પ્રકારો (failure modes) અને એરર હેન્ડલિંગ બધું જ અલગ છે. હું શું વાપરું છું અને શા માટે, તે અહીં છે.
Steam: 250ms સ્લીપ
Steam ડોક્યુમેન્ટેશન રેટ લિમિટ વિશે અસ્પષ્ટ છે. કોમ્યુનિટી ડેટા સૂચવે છે કે પ્રતિ IP દર 5 મિનિટે અંદાજે 200 રિક્વેસ્ટ કરી શકાય છે. આનો અર્થ એ છે કે 1.5 સેકન્ડનો ઇન્ટરવલ સુરક્ષિત છે.
તેના બદલે હું 250ms વાપરું છું. મારું નાઈટલી જોબ (nightly job) માત્ર 60 ગેમ એન્ટ્રીઓ પ્રોસેસ કરે છે. 250ms પર, કુલ સ્લીપ સમય 15 સેકન્ડ છે. 1.5 સેકન્ડ પર, તે 90 સેકન્ડ થઈ જાય છે. જ્યારે તમે બહુવિધ સાઇટ્સ પ્રોસેસ કરતા હોવ ત્યારે સમય બચાવવો મહત્વપૂર્ણ છે.
જો Steam એરર રિટર્ન કરે, તો જોબ અટકી જતી નથી. તે એરર લોગ કરે છે અને પછીની આઇટમ પર આગળ વધે છે. ડેટા આગલી રાત્રે અપડેટ થાય છે.
GitHub: 100ms સ્લીપ
GitHub ખૂબ જ સ્પષ્ટ છે. અનોથોરિટેડ (Unauthenticated) યુઝર્સને કલાકના 60 રિક્વેસ્ટ મળે છે. ટોકન ધરાવતા યુઝર્સને કલાકના 5,000 રિક્વેસ્ટ મળે છે.
હું નમ્રતાના માપદંડ તરીકે 100ms સ્લીપ વાપરું છું. રેટ લિમિટ માટે ટોકન મુખ્ય કામ કરે છે. મારી પાઇપલાઇન કોર REST API નો ઉપયોગ કરે છે, સર્ચ API નો નહીં. આનાથી ઘણું ઊંચું લિમિટ મળી શકે છે.
HuggingFace: કોઈ સ્લીપ નહીં
અઠવાડિયાના નાઈટલી રન દરમિયાન મેં ક્યારેય રેટ લિમિટનો સામનો કર્યો નથી. રજિસ્ટ્રી API મારા જેવા બેચ ટૂલ્સ માટે જ ડિઝાઇન કરવામાં આવ્યું છે.
હું એકસાથે 100 મોડલ્સ સુધી ફેચ (fetch) કરું છું. લિમિટને વધુ વધારવા માટે હું ઓથેન્ટિકેશન ટોકનનો ઉપયોગ કરું છું. 100 મોડલ્સ માટે, કોઈ સ્લીપ ન રાખવી એ સૌથી સરળ ઉકેલ છે.
સારાંશ કોષ્ટક (Summary Table):
• Steam: 250ms સ્લીપ. નોન-ફેટલ (Non-fatal) એરર્સ. • GitHub: 100ms સ્લીપ. નોન-ફેટલ (Non-fatal) એરર્સ. • HuggingFace: કોઈ સ્લીપ નહીં. નોન-ફેટલ (Non-fatal) એરર્સ.
સ્લીપ ઇન્ટરવલ એ માત્ર એક અંદાજ છે. સાચી સુરક્ષા એ છે કે હું એરર્સને કેવી રીતે હેન્ડલ કરું છું. દરેક API કોલ try/catch બ્લોકનો ઉપયોગ કરે છે. જો કોઈ કોલ નિષ્ફળ જાય, તો સિસ્ટમ ક્રેશ થવાને બદલે ફોલબેક રો (fallback row) લખે છે.
સ્લીપ ઇન્ટરવલ એ નિયંત્રિત કરે છે કે તમે કેટલી વાર લિમિટ પર પહોંચો છો. એરર હેન્ડલિંગ એ નિયંત્રિત કરે છે કે જ્યારે તમે લિમિટ પર પહોંચો ત્યારે શું થાય છે.
વૈકલ્પિક લર્નિંગ કોમ્યુનિટી: https://t.me/GyaanSetuAi
