ব্যাচ অনুরোধ পাঠান

আপনার অ্যাপ্লিকেশন প্রতিটি HTTP কানেকশন তৈরি করার ফলে নির্দিষ্ট পরিমাণ ওভারহেড হয়। এই লাইব্রেরি ব্যাচিং সমর্থন করে, আপনার অ্যাপ্লিকেশনকে একটি HTTP অনুরোধে একাধিক API কল করার অনুমতি দিতে। আপনি কখন ব্যাচিং ব্যবহার করতে চাইতে পারেন তার উদাহরণ:

  • আপনার কাছে অনেক ছোট ছোট অনুরোধ আছে এবং আপনি HTTP অনুরোধ ওভারহেড কমাতে চান।
  • আপনার অ্যাপ্লিকেশন অফলাইন থাকাকালীন কোনও ব্যবহারকারী ডেটায় পরিবর্তন করেছেন, তাই আপনার অ্যাপ্লিকেশনকে সার্ভারের সাথে লোকাল ডেটা সিঙ্ক করতে হবে এবং এর জন্য অনেক আপডেট পাঠাতে ও ডেটা মুছে ফেলতে হবে।

মনে রাখবেন: আপনি একটি ব্যাচ অনুরোধে ১,০০০টির বেশি কল করতে পারবেন না। আপনাকে এর থেকে বেশি কল করতে হলে, একাধিক ব্যাচ অনুরোধ ব্যবহার করুন।

মনে রাখবেন: আপনি ব্যাচ অনুরোধে মিডিয়া আপলোড অবজেক্ট ব্যবহার করতে পারবেন না।

বিবরণ

আপনি একটি BatchRequest অবজেক্ট ইনস্ট্যানশিয়েট করে ব্যাচ অনুরোধ তৈরি করেন এবং তারপরে আপনি যে প্রতিটি অনুরোধ কার্যকর করতে চান তার জন্য Queue মেথড কল করেন। প্রতিটি অনুরোধের সাথে, আপনার অ্যাপ্লিকেশন সেই অনুরোধের উত্তর পেলে কল করার জন্য একটি কলব্যাক পাস করুন। কলব্যাক ফাংশনের আর্গুমেন্টগুলি হল:

কন্টেন্ট
কন্টেন্ট রেসপন্স, অথবা অনুরোধ ব্যর্থ হলে null।
সমস্যা
সমস্যা, অথবা অনুরোধ সফল হলে null।
সূচি
ব্যক্তিগত অনুরোধের ইনডেক্স।
মেসেজ
সম্পূর্ণ HTTP মেসেজ যার মধ্যে সব হেডার ও কন্টেন্ট অন্তর্ভুক্ত।
অনুরোধ যোগ করার পরে, আপনি অনুরোধ করার জন্য ExecuteAsync পদ্ধতি কল করেন।

নিম্নলিখিত কোড স্নিপেটে, দুটি API অনুরোধ একটি HTTP অনুরোধে ব্যাচ করা হয়, এবং প্রতিটি API অনুরোধে একটি কলব্যাক প্রদান করা হয়:

UserCredential credential;
using (var stream = new FileStream("client_secrets.json", FileMode.Open, FileAccess.Read))
{
    credential = await GoogleWebAuthorizationBroker.AuthorizeAsync(
        GoogleClientSecrets.Load(stream).Secrets,
        new[] { CalendarService.Scope.Calendar },
        "user", CancellationToken.None, new FileDataStore("Calendar.Sample.Store"));
}

// Create the service.
var service = new CalendarService(new BaseClientService.Initializer()
    {
        HttpClientInitializer = credential,
        ApplicationName = "Google Calendar API Sample",
    });

// Create a batch request.
var request = new BatchRequest(service);
request.Queue<CalendarList>(service.CalendarList.List(),
     (content, error, i, message) =>
     {
         // Put your callback code here.
     });
request.Queue<Event>(service.Events.Insert(
     new Event
     {
         Summary = "Learn how to execute a batch request",
         Start = new EventDateTime() { DateTime = new DateTime(2014, 1, 1, 10, 0, 0) },
         End = new EventDateTime() { DateTime = new DateTime(2014, 1, 1, 12, 0, 0) }
     }, "YOUR_CALENDAR_ID_HERE"),
     (content, error, i, message) =>
     {
         // Put your callback code here.
     });
// You can add more Queue calls here.

// Execute the batch request, which includes the 2 requests above.
await request.ExecuteAsync();