কোনও ওয়েব অ্যাপ্লিকেশন থেকে পাঠানো স্বয়ংক্রিয় ইমেলগুলি কীভাবে পরিচালনা করবেন


12

আমি একটি ওয়েব অ্যাপ্লিকেশন ডিজাইন করছি এবং আমি কীভাবে স্বয়ংক্রিয় ইমেলগুলি প্রেরণ করার জন্য আর্কিটেকচারটি ডিজাইন করব তা ভাবছি।

বর্তমানে আমি আমার ওয়েব অ্যাপটিতে এই বৈশিষ্ট্যটি তৈরি করেছি এবং ইমেলগুলি ব্যবহারকারী ইনপুট / ইন্টারঅ্যাকশন (নতুন ব্যবহারকারী তৈরি করার মতো) এর ভিত্তিতে প্রেরণ করা হয়। সমস্যাটি হ'ল সরাসরি কোনও মেল সার্ভারের সাথে সংযোগ স্থাপন করতে কয়েক সেকেন্ড সময় লাগে। আমার অ্যাপ্লিকেশনটি স্কেলিং করা, এটি ভবিষ্যতে একটি উল্লেখযোগ্য বোতল ঘাড় হবে।

আমার সিস্টেম আর্কিটেকচারের মধ্যে প্রচুর পরিমাণে স্বয়ংক্রিয় ইমেলগুলি প্রেরণ করার সর্বোত্তম উপায় কী?

বিপুল পরিমাণ ইমেল প্রেরণ করা হবে না (দিনে 2000 সর্বাধিক)। ইমেলগুলি তাত্ক্ষণিকভাবে প্রেরণের দরকার নেই, 10 মিনিট অবধি ভাল।

আপডেট: ম্যাসেজের সারিটি উত্তর হিসাবে দেওয়া হয়েছে, তবে কীভাবে এটি ডিজাইন করা হবে? এটি কি অ্যাপ্লিকেশনটিতে পরিচালনা করা হবে এবং একটি শান্ত সময়ের মধ্যে প্রক্রিয়া করা হবে, বা আমার কি কেবল সারিটি পরিচালনা করতে একটি নতুন 'মেল অ্যাপ' বা ওয়েব পরিষেবা তৈরি করা দরকার?


আপনি আমাদের স্কেল একটি মোটামুটি ধারণা দিতে পারেন? কয়েকশো, হাজারে বা কয়েক মিলিয়ন মেল? এছাড়াও, ইমেলগুলি তাত্ক্ষণিকভাবে প্রেরণ করা উচিত বা একটি ছোট ল্যাগ গ্রহণযোগ্য?
ইয়ানিস

ইমেল প্রেরণে কোনও প্রাপ্তি মেইল ​​হোস্টের কাছে একটি এসএমটিপি বার্তা হস্তান্তর জড়িত থাকে, তবে এর অর্থ এই নয় যে বার্তাটি আসলে বিতরণ করা হয়েছে। সুতরাং কার্যকরভাবে, সমস্ত ইমেল প্রেরণগুলি অবিচ্ছিন্ন, এবং "সাফল্যের জন্য অপেক্ষা" করার ভান করার কোনও অর্থ নেই।
কিলিয়ান ফট

1
আমি "সাফল্যের জন্য অপেক্ষা" করছি না, তবে আমার অনুরোধটি স্বীকার করার জন্য আমাকে এসএমটিপি সার্ভারের জন্য অপেক্ষা করতে হবে। @ ইন্নিসরিজ আপডেট আপডেট দেখুন আপনার মন্তব্য
গাজ_এডজ

2000 (যা আপনার বর্ণিত সর্বাধিক) মেলের জন্য এটি কেবল কাজ করবে। যখন তারা 10 টি ব্যবসায়িক সময় বলে তখন এটি প্রতি মিনিটে 3 টি মেল যা খুব কার্যক্ষম। কেবলমাত্র নিশ্চিত হয়ে নিন যে আপনি আপনার ডিএনএস রেকর্ডটি ভালভাবে সেটআপ করেছেন এবং সরবরাহকারী আপনাকে তাদের এই পরিমাণে প্রেরণে মেনে নেয়। এ সম্পর্কেও ভাবুন: "মেইল সার্ভারটি কী ডাউন?"। 2000 মেল প্রেরণের বোঝা চিন্তার কিছু নয়।
লুক ফ্রাঙ্কেন

সিআরএনএটিএবি কোথায়
টিলাইনস কর্ডোভা

উত্তর:


15

ইতিমধ্যে ইতিমধ্যে উল্লিখিত হিসাবে সাধারণ পন্থাটি একটি বার্তার সারি । ডিজাইনের দৃষ্টিকোণ থেকে একটি বার্তার সারিটি মূলত একটি ফিফোর সারি , যা একটি মূল মৌলিক ডেটা টাইপ:

ফিফোর সারি

একটি বার্তা সারিটি কী বিশেষ করে তোলে তা হ'ল আপনার অ্যাপ্লিকেশনটি এন-কুইংয়ের জন্য দায়ী থাকাকালীন একটি পৃথক প্রক্রিয়া ডি-কুইংয়ের জন্য দায়ী। কুইউটিং লিংগোতে, আপনার অ্যাপ্লিকেশনটি বার্তা প্রেরণকারী (গুলি) এবং ডি-কুইং প্রক্রিয়াটি প্রাপক i এর সুস্পষ্ট সুবিধাটি হ'ল পুরো প্রক্রিয়াটি অ্যাসিক্রোনাস, প্রেরক প্রেরকের স্বতন্ত্রভাবে কাজ করে, যতক্ষণ প্রক্রিয়া করার বার্তা রয়েছে। সুস্পষ্ট অসুবিধাটি হ'ল পুরো জিনিসটি কাজ করার জন্য আপনার অতিরিক্ত উপাদান, প্রেরক দরকার।

যেহেতু আপনার আর্কিটেকচার এখন বার্তা বিনিময় দুটি উপাদানগুলির উপর নির্ভর করে, আপনি এর জন্য অভিনব শব্দটি আন্ত-প্রক্রিয়া যোগাযোগ ব্যবহার করতে পারেন।

কীভাবে একটি সারি প্রবর্তন করা আপনার অ্যাপ্লিকেশনটির নকশাকে প্রভাবিত করে?

আপনার অ্যাপ্লিকেশনটিতে কিছু ক্রিয়া ইমেল উত্পন্ন করে। একটি বার্তা সারি উপস্থাপনের অর্থ হ'ল এই ক্রিয়াগুলির পরিবর্তে এখন বার্তাগুলিকে কাতারে চাপ দেওয়া উচিত (এবং আরও কিছু নয়)। এই বার্তাগুলিতে নিখুঁত ন্যূনতম পরিমাণের তথ্য বহন করা উচিত যা আপনার রিসিভার যখন তাদের প্রক্রিয়া করতে আসে তখন ইমেলগুলি তৈরি করতে প্রয়োজনীয়।

বার্তা ফর্ম্যাট এবং বিষয়বস্তু

আপনার বার্তাগুলির ফর্ম্যাট এবং সামগ্রী সম্পূর্ণরূপে আপনার উপর নির্ভর করে তবে আপনার আরও ছোটটি মনে রাখা উচিত। আপনার সারি লিখতে এবং দ্রুত প্রক্রিয়া করার জন্য দ্রুত হওয়া উচিত, এতে প্রচুর পরিমাণে ডেটা নিক্ষেপ করা সম্ভবত একটি বাধা সৃষ্টি করবে।

অধিকন্তু বেশ কয়েকটি ক্লাউড ভিত্তিক কুইউনিং পরিষেবাদির বার্তার আকারগুলিতে বিধিনিষেধ রয়েছে এবং এটি বৃহত্তর বার্তাগুলিকে বিভক্ত করতে পারে। আপনি খেয়াল করবেন না, বিভক্ত বার্তাগুলি আপনি যখন জিজ্ঞাসা করবেন তখন সেগুলি এক হিসাবে পরিবেশন করা হবে তবে একাধিক বার্তাগুলির জন্য আপনাকে চার্জ করা হবে (ধরে নিই যে আপনি কোনও পরিষেবা ব্যবহার করছেন যা ফি প্রয়োজন requires

রিসিভার ডিজাইন

যেহেতু আমরা একটি ওয়েব অ্যাপ্লিকেশন সম্পর্কে কথা বলছি, আপনার রিসিভারের জন্য একটি সাধারণ পন্থা একটি সহজ ক্রোন স্ক্রিপ্ট হবে। এটি প্রতি xমিনিটে (বা সেকেন্ড) চলবে এবং এটি হবে:

  • nসারি থেকে বার্তাগুলির পপ পরিমাণ,
  • বার্তাগুলি প্রক্রিয়া করুন (যেমন ইমেলগুলি প্রেরণ করুন)।

লক্ষ্য করুন যে আমি পেতে বা আনার পরিবর্তে পপ বলছি, এর কারণ আপনার প্রাপক কেবল সারি থেকে আইটেমগুলি পাচ্ছেন না, এটি সেগুলি সাফও করছে (যেমন তাদের সারি থেকে সরিয়ে দেওয়া বা প্রক্রিয়াজাতকরণ হিসাবে চিহ্নিত করা)। কীভাবে এটি ঘটবে তা নির্ভর করে আপনার বার্তার সারিটি প্রয়োগ এবং আপনার অ্যাপ্লিকেশনটির নির্দিষ্ট প্রয়োজনীয়তার উপর।

অবশ্যই আমি যা বর্ণনা করছি তা মূলত একটি ব্যাচের অপারেশন , একটি সারি প্রক্রিয়াজাতকরণের সহজতম উপায়। আপনার প্রয়োজনের উপর নির্ভর করে আপনি বার্তাগুলি আরও জটিল পদ্ধতিতে প্রক্রিয়া করতে চাইতে পারেন (এটি আরও জটিল কাতারের জন্যও ডাকবে)।

ট্রাফিক

আপনার রিসিভার ট্র্যাফিকের বিষয়টি বিবেচনা করতে এবং চলার সময় ট্র্যাফিকের উপর ভিত্তি করে প্রক্রিয়াজাত বার্তাগুলির সংখ্যা সামঞ্জস্য করতে পারে। একটি সরল পদ্ধতি হ'ল অতীতের ট্র্যাফিক ডেটার উপর ভিত্তি করে আপনার উচ্চ ট্র্যাফিক সময়গুলির পূর্বাভাস দেওয়া এবং ধরে নেওয়া যে আপনি ক্রোন স্ক্রিপ্ট নিয়ে চলেছেন যা প্রতি xমিনিটে চলে আপনি এই জাতীয় কিছু করতে পারেন:

if( 
    now() > 2pm && now() < 7pm
) {
    process(10);
} else {
    process(100);
}

function process(count) {
    for(i=0; i<=count; i++) {
        message = dequeue();
        mail(message)
    }
}

একটি খুব নিষ্পাপ এবং নোংরা পদ্ধতির, কিন্তু এটি কার্যকর। যদি এটি না হয় তবে ভাল, অন্য পদ্ধতিটি হ'ল প্রতিটি পুনরাবৃত্তিতে আপনার সার্ভারের বর্তমান ট্র্যাফিকটি সন্ধান করা এবং সেই অনুসারে প্রক্রিয়া আইটেমের সংখ্যা সমন্বয় করা। এটি একেবারে প্রয়োজনীয় না হলেও মাইক্রো-অপ্টিমাইজ করবেন না, আপনি নিজের সময় নষ্ট করবেন।

সারি স্টোরেজ

যদি আপনার অ্যাপ্লিকেশনটি ইতিমধ্যে একটি ডাটাবেস ব্যবহার করে, তবে তার উপর একটি একক টেবিলই সহজ সমাধান হবে:

CREATE TABLE message_queue (
  id int(11) NOT NULL AUTO_INCREMENT,
  timestamp timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  processed enum('0','1') NOT NULL DEFAULT '0',
  message varchar(255) NOT NULL,
  PRIMARY KEY (id),
  KEY timestamp (timestamp),
  KEY processed (processed)
) 

এটি আসলে এর চেয়ে জটিল নয়। আপনি অবশ্যই এটি আপনার প্রয়োজন হিসাবে জটিল হিসাবে তৈরি করতে পারেন, আপনি উদাহরণস্বরূপ, একটি অগ্রাধিকার ক্ষেত্র যুক্ত করতে পারেন (যার অর্থ এই যে এটি আর ফিফোর সারি নয়, তবে যদি আপনার এটির প্রয়োজন হয় তবে কে যত্নশীল?)। প্রক্রিয়াজাত ক্ষেত্রটি এড়িয়ে আপনি এটিকে আরও সহজ করে তুলতে পারেন (তবে তারপরে আপনার প্রক্রিয়া করার পরে সারিগুলি মুছতে হবে)।

ডাটাবেস সারণিতে দিন প্রতি 2000 বার্তাগুলির জন্য আদর্শ হতে পারে, কিন্তু এটা হবে সম্ভবত দৈনিক বার্তা লক্ষ লক্ষ জন্য ভাল স্কেল নয়। লক্ষ লক্ষ ফ্যাক্টর রয়েছে, আপনার অবকাঠামোগুলির সমস্ত কিছুই আপনার আবেদনের সামগ্রিক স্কেলিবিলিটিতে ভূমিকা রাখে।

যাই হোক না কেন, ধরে নিই যে আপনি ইতিমধ্যে ডাটাবেস ভিত্তিক সারিটি একটি বাধা হিসাবে চিহ্নিত করেছেন, পরবর্তী পদক্ষেপটি একটি মেঘ ভিত্তিক পরিষেবাটি দেখা উচিত। আমাজন এসকিউএস হ'ল আমি এক পরিষেবা যা ব্যবহার করেছি এবং এটি প্রতিশ্রুতি দিয়েছিল did আমি নিশ্চিত যে সেখানে বেশ কয়েকটি অনুরূপ পরিষেবা রয়েছে।

মেমরি ভিত্তিক কিউগুলিও বিবেচনা করার মতো বিষয়, বিশেষত স্বল্পজীবী সারির জন্য। মেমক্যাচ করা বার্তা সারি স্টোরেজ হিসাবে দুর্দান্ত।

আপনি যে স্টোরেজটিতে নিজের সারিটি তৈরির সিদ্ধান্ত নেন না কেন, স্মার্ট হন এবং এটি বিমূর্ত করুন। আপনার প্রেরক বা আপনার প্রাপক উভয়ই একটি নির্দিষ্ট স্টোরেজে আবদ্ধ হবেন না, অন্যথায় পরবর্তী সময়ে কোনও আলাদা স্টোরেজে স্যুইচ করা সম্পূর্ণ পিআইটিএ হবে না।

বাস্তব জীবনের পন্থা

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

  • ইউনিট পরীক্ষার জন্য পিএইচপি অ্যারে,
  • উত্পাদন নিয়ে অ্যামাজন এসকিউএস,
  • ডেভ এবং পরীক্ষার পরিবেশের উপর মাইএসকিউএল।

আমার বার্তাগুলি যতটা সহজ সেগুলি সহজ ছিল, আমার অ্যাপ্লিকেশনটি প্রয়োজনীয় তথ্য ( [user_id, reason]) দিয়ে ছোট অ্যারে তৈরি করেছে । মেসেজ স্টোরটি সেই অ্যারের সিরিয়ালাইজড সংস্করণ ছিল (প্রথমে এটি পিএইচপি এর অভ্যন্তরীণ সিরিয়ালাইজেশন ফর্ম্যাট ছিল, তারপরে জেএসওএন, কেন আমি স্যুইচ করেছিলাম তা মনে নেই)। reasonএকটি ধ্রুবক এবং অবশ্যই আমি একটি বড় টেবিল কোথাও যে মানচিত্র নেই reasonপূর্ণাঙ্গ ব্যাখ্যা (আমি রহস্যপূর্ণ সঙ্গে গ্রাহকদের ইমেল 500 সম্পর্কে পাঠাতে পরিচালনা হয়নি reasonপরিবর্তে একবার পূর্ণাঙ্গ বার্তা)।

আরও পড়া

মানক:

সরঞ্জাম:

আকর্ষণীয় পড়া:


কি দারুন. আমি এখানে পেয়েছি সেরা উত্তর সম্পর্কে! আপনাকে যথেষ্ট ধন্যবাদ দিতে পারি না!
গাজ_এডেজ

আমি এবং নিশ্চিত যে আরও লক্ষ লক্ষ লোক এই ফিফোটি Gmail এবং গুগল অ্যাপস স্ক্রিপ্টের সাথে ব্যবহার করে। একটি Gmail ফিল্টার কোনও মানদণ্ডের উপর ভিত্তি করে যে কোনও আগত মেলকে লেবেল দেয় এবং সবগুলি স্থায়ী করে, তাদের সারি করে। একটি গুগল অ্যাপস স্ক্রিপ্ট প্রতি X সময়কালে চালিত হয়, প্রথম y বার্তা পায়, তাদের প্রেরণ করে, তাদের প্রাপ্য করে। ধুয়ে ফেলুন এবং পুনরাবৃত্তি করুন।
ডেভচানা

6

আপনার একরকম কুইউিং সিস্টেমের দরকার।

একটি সহজ উপায় হ'ল একটি ডাটাবেস টেবিলে লেখার জন্য এবং এই টেবিলটিতে আরও একটি বহিরাগত অ্যাপ্লিকেশন প্রক্রিয়া সারি থাকতে পারে, তবে আপনি ব্যবহার করতে পারেন এমন আরও অনেক সারি প্রযুক্তি রয়েছে।

আপনার ইমেলগুলিতে একটি গুরুত্ব থাকতে পারে যাতে নির্দিষ্ট কিছুগুলি সাথে সাথেই তত্ক্ষণাত কার্যকর হয় (উদাহরণস্বরূপ পাসওয়ার্ড পুনরায় সেট করা) এবং এর চেয়ে কম গুরুত্বের বিষয়গুলি পরে পাঠানো যেতে পারে ched


আপনার কি কোনও স্থাপত্য চিত্র বা উদাহরণ রয়েছে যা দেখায় যে এটি কীভাবে কাজ করে? উদাহরণস্বরূপ, কি কি একটি আলাদা অ্যাপ্লিকেশনটিতে মেল অ্যাপ্লিকেশনটি বলা আছে, বা শান্ত সময়ের মধ্যে এটি ওয়েব অ্যাপ্লিকেশন থেকে প্রক্রিয়া পায়? বা এগুলি প্রক্রিয়া করার জন্য আমার কি এক ধরণের ওয়েব পরিষেবা তৈরি করা উচিত?
গাজ_এডেজ

1
@ গাজ_এডেজ আপনার অ্যাপ্লিকেশনটি আইটেমগুলিকে সারিতে ফেলেছে। একটি ব্যাকগ্রাউন্ড প্রক্রিয়া (খুব সম্ভবত একটি ক্রোন স্ক্রিপ্ট) প্রতিটি এন সেকেন্ডের মধ্যে সারি থেকে এক্স আইটেমগুলি পপ করে এবং সেগুলি প্রক্রিয়া করে (আপনার ক্ষেত্রে ইমেল প্রেরণ করে)। একটি একক ডাটাবেস টেবিল স্বল্প পরিমাণে আইটেমের জন্য সারি স্টোরেজ হিসাবে ভাল কাজ করে, তবে সাধারণত একটি ডাটাবেসে রাইটিং অপারেশন ব্যয়বহুল এবং বৃহত্তর পরিমাণে আপনি অ্যামাজনের এসকিউএস এর মতো পরিষেবাগুলি দেখতে চাইতে পারেন ।
ইয়ানিস

1
@ গাজ_এডেজ আমি নিশ্চিত নই যে আমি যা লিখেছি তার চেয়ে আরও সহজ আমি এটিকে আঁকতে পারি "... একটি ডাটাবেস সারণিতে লিখুন এবং এই সারণীতে আরও একটি বাহ্যিক প্রয়োগ প্রক্রিয়া সারি রয়েছে ..." এবং টেবিলের জন্য "যে কোনও সারি পড়ুন" "যাই হোক না কেন প্রযুক্তি।
ওজ

1
(চলমান ...) আপনি ব্যাকগ্রাউন্ড প্রক্রিয়াটি তৈরি করতে পারেন যা আপনার ট্র্যাফিককে বিবেচনায় নিয়ে এমনভাবে কাতাকে সাফ করে দেয়, উদাহরণস্বরূপ আপনি যখন আপনার সার্ভারের চাপের মধ্যে থাকেন তখন আপনি কম আইটেমগুলি (বা কিছুই নয়) প্রক্রিয়াকরণের নির্দেশ দিতে পারেন when । আপনার অতীতের ট্র্যাফিক তথ্যগুলি (এটি যত সহজ মনে হয় তার চেয়ে সহজ, তবে ত্রুটির একটি বড় ব্যবধানের সাথে) দেখে বা আপনার পটভূমি প্রক্রিয়াটি প্রতিবার ট্র্যাফিকের অবস্থাটি পরীক্ষা করে দেখে (আরও নির্ভুল, তবে যুক্ত ওভারহেড খুব কমই প্রয়োজন হয়)।
ইয়ানিস

@ ইয়ানিসরিজস আপনার মন্তব্যে উত্তরের সাথে একত্রিত করতে চান? এছাড়াও, আর্কিটেকচার ডায়াগ্রাম এবং ডিজাইনগুলি সহায়ক হবে (আমি এই বার এই প্রশ্ন থেকে তাদেরকে পেতে
দৃ to়

2

বিপুল পরিমাণ ইমেল প্রেরণ করা হবে না (দিনে 2000 সর্বাধিক)।

সারি যুক্ত করার পাশাপাশি, দ্বিতীয় বিষয় যা আপনার বিবেচনা করা উচিত বিশেষায়িত পরিষেবাদির মাধ্যমে ইমেলগুলি প্রেরণ করা: মেলচিম্প, উদাহরণস্বরূপ (আমি এই পরিষেবার সাথে যুক্ত নই)। অন্যথায় Gmail এর মতো অনেক মেল পরিষেবাগুলি শীঘ্রই আপনার চিঠিগুলি একটি স্প্যাম ফোল্ডারে প্রেরণ করবে।


2

আমি আমার কিউ সিস্টেমটি বিভিন্ন 2 টেবিল হিসাবে মডেল করেছি;

CREATE TABLE [dbo].[wMessages](
  [Id] [uniqueidentifier]  NOT NULL,
  [FromAddress] [nvarchar](255) NOT NULL,
  [FromDisplayName] [nvarchar](255) NULL,
  [ToAddress] [nvarchar](255) NOT NULL,
  [ToDisplayName] [nvarchar](255) NULL,
  [Graph] [xml] NOT NULL,
  [Priority] [int] NOT NULL,
  PRIMARY KEY CLUSTERED ( [Id] ASC ))

CREATE TABLE [dbo].[wMessageStates](
  [MessageId] [uniqueidentifier] NOT NULL,
  [Status] [int] NOT NULL,
  [LastChange] [datetimeoffset](7) NOT NULL,
  [SendAfter] [datetimeoffset](7) NULL,
  [SendBefore] [datetimeoffset](7) NULL,
  [DeleteAfter] [datetimeoffset](7) NULL,
  [SendDate] [datetimeoffset](7) NULL,
  PRIMARY KEY CLUSTERED ( [MessageId] ASC )) ON [PRIMARY]
) ON [PRIMARY]

এই টেবিলগুলির মধ্যে 1-1 সম্পর্ক রয়েছে।

বার্তাগুলির সামগ্রী সংরক্ষণের জন্য বার্তা সারণী। আসল সামগ্রী (টু, সিসি, বিসিসি, সাবজেক্ট, বডি ইত্যাদি) এক্সএমএল ফর্ম্যাটে গ্রাফ ফিল্ডে সিরিয়ালযুক্ত। অন্যান্য থেকে, তথ্য কেবল গ্রাফকে ডিসেরায়ালাইজ করা ছাড়াই সমস্যাগুলি প্রতিবেদন করার জন্য ব্যবহৃত হয়। এই টেবিলটি বিচ্ছিন্ন করার ফলে টেবিলের সামগ্রীগুলি পৃথক ডিস্ক স্টোরেজে পার্টিশন করতে দেয়। একবার আপনি কোনও বার্তা প্রেরণের জন্য প্রস্তুত হয়ে গেলে আপনাকে সমস্ত তথ্য পড়তে হবে অতএব প্রাথমিক কী সূচক সহ সমস্ত কন্টেন্টকে একটি কলামে সিরিয়ালাইজ করাতে কোনও সমস্যা নেই।

অতিরিক্ত তারিখ ভিত্তিক তথ্যের সাথে বার্তা সামগ্রীর স্থিতি সংরক্ষণের জন্য মেসেজস্টেট টেবিল। এই টেবিলটি পৃথক করা দ্রুত আইও স্টোরেজটিতে অতিরিক্ত সূচীগুলি সহ দ্রুত অ্যাক্সেস মেকানিজমকে মঞ্জুরি দেয়। অন্যান্য কলামগুলি ইতিমধ্যে স্ব ব্যাখ্যাযোগ্য।

আপনি একটি পৃথক থ্রেড পুল ব্যবহার করতে পারেন যা এই টেবিলগুলিকে স্ক্যান করে। যদি অ্যাপ্লিকেশন এবং পুল একই মেশিনে বাস করে তবে আপনি এই টেবিলগুলি সন্নিবেশ করানো সম্পর্কে অ্যাপ্লিকেশন থেকে পুলটি সিগন্যাল করতে ইভেন্টউইটহ্যান্ডল ক্লাস ব্যবহার করতে পারেন , অন্যথায় সময়সীমার সাথে সময়সীমা শেষ করে স্ক্যান করা সেরা।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.