এপিআইতে আমি কাজ করছি সেখানে একটি বাল্ক মুছুন অপারেশন যা আইডির একটি অ্যারে গ্রহণ করে:
["1000", ..., "2000"]
আমি ফিট দেখে মুছে ফেলা অপারেশনটি বাস্তবায়িত করতে স্বাধীন ছিলাম, তাই আমি পুরো জিনিসটি লেনদেনের সিদ্ধান্ত নিয়েছিলাম: এটি হ'ল কোনও একক আইডি যদি অবৈধ হয় তবে পুরো অনুরোধটি ব্যর্থ হয়। আমি এটিকে কঠোর মোড বলব ।
try{
savepoint = conn.setSavepoint();
for(id : IDs)
if( !deleteItem(id) ){
conn.rollback(savepoint);
sendHttp400AndBeDoneWithIt();
return;
}
conn.commit();
}
বিকল্প (আমাদের সফ্টওয়্যার স্যুটে অন্য কোথাও প্রয়োগ করা) হ'ল ব্যাকএন্ডে আমরা যা করতে পারি তা করা এবং অ্যারেতে ব্যর্থতার প্রতিবেদন করা। সফ্টওয়্যারটির সেই অংশটি কম অনুরোধগুলির সাথে কাজ করে যাতে তাত্ত্বিকভাবে প্রতিক্রিয়াটি বিশালাকার অ্যারে হিসাবে শেষ হয় না।
রিসোর্স-দুর্বল সার্ভারে সাম্প্রতিক একটি বাগটি আমাকে কোডটি আবার দেখার জন্য প্ররোচিত করেছে, এবং এখন আমি আমার মূল সিদ্ধান্তটি নিয়ে প্রশ্ন করছি - তবে এবার আমি সেরা অভ্যাসের পরিবর্তে ব্যবসায়ের প্রয়োজনে আরও বেশি অনুপ্রাণিত হয়েছি। উদাহরণস্বরূপ, যদি আমি সম্পূর্ণ অনুরোধটি ব্যর্থ করি তবে ব্যবহারকারীর আবার চেষ্টা করতে হবে এবং যদি বেশ কয়েকটি আইটেম মুছে ফেলা হয়, ব্যবহারকারী ক্রিয়াটি শেষ করতে পারে এবং তারপরে প্রশাসককে বাকী কাজটি করতে বলতে পারে (আমি বাগটি ঠিক করার সময় কাজ করছি) !)। এটি অনুমতিযোগ্য মোড হবে।
আমি এই বিষয়ে কিছু গাইডেন্সের জন্য অনলাইনে চেষ্টা করার চেষ্টা করেছি তবে আমি খালি হাতে এসেছি। সুতরাং আমি আপনার কাছে আসছি: এই প্রকৃতির বাল্ক অপারেশন দ্বারা সর্বাধিক কী প্রত্যাশা করা হয়? আমার আরও কঠোরভাবে থাকা উচিত, না আমার আরও অনুমতি দেওয়া উচিত?