এক্সিকিউটর সার্ভিসে কল বন্ধ করার কারণ () ason


84

আমি এটা সম্পর্কে গত কয়েক ঘন্টার মধ্যে বেশ একটু পড়া ছিল, আর আমি কেবল না কোন কারণে (দেখতে পারেন বৈধ কল করার কারণ) shutdown()উপর ExecutorService, যদি না আমরা একটি বিশাল বিশাল আবেদন আছে, যা সঞ্চয়, ডজন এবং যে জন্য ব্যবহার করা হয় না বিভিন্ন নির্বাহক পরিষেবার ডজন অনেক দিন.

শাটডাউনটি কেবলমাত্র (আমি যা সংগ্রহ করি তা থেকে) হ'ল, সাধারণ থ্রেডটি শেষ হয়ে গেলে যা করে। যখন সাধারণ থ্রেড রান্নেবল (বা কলযোগ্য) এর রান পদ্ধতিটি শেষ করবে, এটি সংগ্রহ করার জন্য আবর্জনা সংগ্রহে পাঠানো হবে। এক্সিকিউটার সার্ভিসের মাধ্যমে থ্রেডগুলি কেবল আটকে রাখা হবে, আবর্জনা সংগ্রহের জন্য সেগুলি টিক দেওয়া হবে না। তার জন্য শাটডাউন দরকার।

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

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

আমি কিছু অভিজ্ঞ কোডারদের কাছ থেকে উত্তর চাই যারা এক্সিকিউটার সার্ভিস ব্যবহার করে প্রচুর অ্যাসিনক্রোনাস কোড লেখেন।

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

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


4
"আমি অনেকবার নমুনা কোডগুলি দেখি, যেখানে সমস্ত সময়, কাজগুলি জমা দেওয়ার বা সম্পাদনের পরে ডানদিকে বন্ধের আহ্বান রয়েছে" - আপনার দাবির প্রমাণ দেওয়ার জন্য হাইপারলিঙ্কগুলি ব্যবহার করতে দ্বিধা বোধ করুন। ব্যক্তিগতভাবে, আমি এমন কোনও "নমুনা কোড" দেখিনি যা আপনার বক্তব্য অনুযায়ী করে। এটি সম্ভব যে আপনি কোনও কিছুর ভুল ব্যাখ্যা দিচ্ছেন এবং আপনি কেবলমাত্র "নমুনা কোডগুলি" পরীক্ষা করছেন তা যদি আমরা জানি তবে আমরা আপনাকে কেবল এটিই নির্দেশ করতে পারি।
CommonsWare

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

4
ব্রয় একেল এর জাভা বইয়ের ভাবনা সম্পর্কে চিন্তাভাবনায় হাই কমনস ওয়েয়ার..ইন সম্মতি / এক্সিকিউটর পৃষ্ঠা ৮০৪ চতুর্থ সংস্করণে, তিনি লুকাস যেমন বলেছিলেন এক্সিকিউটর কীভাবে কাজ করে তা চিত্রিত করার জন্য সহজ অ্যাপ্লিকেশনগুলিতে কাজ জমা দেওয়ার বা সম্পাদনের ঠিক পরে সর্বদা শাটডাউন () পদ্ধতি ব্যবহার করেন
ত্রুটি

4
আমি জানি এটি একটি পুরানো পোস্ট, তবে আমি মনে করি ওপির প্রশ্নটি এখনও দাঁড়িয়ে আছে এবং এটি বৈধ। আমি এমন অনেকগুলি নমুনা কোডও পেয়েছি যেখানে "এক্সিকিউট (() কার্যকর করার ঠিক পরে ডাকাডোটা) রয়েছে" "। tutorials.jenkov.com/java-util-concurrent/executorservice.html (প্রথম টিউটোরিয়াল যা আপনি "জাভা এক্সিকিউটর
সার্ভিস

আপনাকে ধন্যবাদ, আমার কাছে একই প্রশ্ন ছিল যা এই "নমুনা কোডগুলি" দিয়ে উত্থাপিত হয়েছিল। journaldev.com/2340/...
Gregordy

উত্তর:


57

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

আসুন ধরে নেওয়া যাক আপনার কাছে একটি কনসোল অ্যাপ্লিকেশন রয়েছে যাতে একটি এক্সিকিউটার সার্ভিস রয়েছে এন কাজ করে। যদি ব্যবহারকারী সিটিআরএল-সিটিকে হিট করে তবে আপনি আবেদনটি সম্ভবত নিখুঁতভাবে শেষ হওয়ার প্রত্যাশা করছেন। করুণভাবে এর অর্থ কী? হতে পারে আপনি চান যে আপনার অ্যাপ্লিকেশনটি এক্সিকিউটর পরিষেবাতে আরও কাজ জমা দিতে সক্ষম না হবে এবং একই সাথে আপনি আপনার বিদ্যমান এন কার্য শেষ হওয়ার জন্য অপেক্ষা করতে চান। আপনি সর্বশেষ অবলম্বন হিসাবে শাটডাউন হুক ব্যবহার করে এটি অর্জন করতে পারেন:

final ExecutorService service = ... // get it somewhere

Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() {
    @Override
    public void run() {
        System.out.println("Performing some shutdown cleanup...");
        service.shutdown();
        while (true) {
            try {
                System.out.println("Waiting for the service to terminate...");
                if (service.awaitTermination(5, TimeUnit.SECONDS)) {
                    break;
                }
            } catch (InterruptedException e) {
            }
        }
        System.out.println("Done cleaning");
    }
}));

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

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

আর একটি আকর্ষণীয় দৃশ্য হ'ল যখন আপনার একটি সময়োপযোগী কার্য সম্পাদন করে একটি শিডিউডএক্সেকিউটারসেবা থাকে। পর্যায়ক্রমিক কাজের চেইন বন্ধ করার একমাত্র উপায় কল করা shutdown()

সম্পাদনা: আমি যুক্ত করতে চাই যে আমি সাধারণ ক্ষেত্রে উপরে যেমন দেখানো হয়েছে তেমন শাটডাউন হুক ব্যবহার করার পরামর্শ দেব না: এটি ত্রুটি-প্রবণ হতে পারে এবং এটি কেবল শেষ সমাধান হতে পারে। তদুপরি, আপনার যদি অনেকগুলি শাটডাউন হুক নিবন্ধিত থাকে তবে তারা যে ক্রমে চালাবেন তা অপরিজ্ঞাত, যা অনাকাঙ্ক্ষিত হতে পারে। আমি বরং আবেদন স্পষ্টভাবে কল আছে চাই shutdown()উপর InterruptedException


দেরী সাড়া পাওয়ার জন্য জিওভান্নি দুঃখিত, এবং বিটিডব্লিউর জন্য আপনাকে ধন্যবাদ। হ্যাঁ, আমি নির্বাহী কীভাবে কাজ করে সে সম্পর্কে আমি সচেতন, যা আমি আমার প্রশ্নে ব্যাখ্যা করার চেষ্টা করেছি। শাটডাউনটি যা বলেছে তা করে এবং এটি আবর্জনা সংগ্রহকারীকে সেই মৃত থ্রেডগুলি সংগ্রহ করতে এবং কার্যকরভাবে এক্সিকিউটারসেবার উদাহরণ সংগ্রহ করতে দেয়। আমার প্রশ্ন নির্দিষ্ট ছিল। এক্সিকিউটর সার্ভিসে কোনও কিছু জমা দেওয়ার / সম্পাদনের ঠিক পরে, সারাক্ষণ "শাটডাউন ()" কল করার কোনও কারণ আছে কি? প্রশ্নের দ্বিতীয় অংশটি অ্যান্ড্রয়েড আর্কিটেকচারের সাথে কঠোরভাবে সম্পর্কিত। পূর্বের উত্তর যদি না হয় তবে কখন এবং কখন বন্ধ হবে call জীবনচক্র.
লুকাস

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

"সারাক্ষণ শাটডাউন () কল করার কোনও কারণ নেই। আসলে এটি করা চূড়ান্ত ভুল কাজ হতে পারে কারণ এটি আপনাকে পুনরায় নির্বাহক পরিষেবা পুনরায় ব্যবহার করা থেকে বিরত রাখবে"। এটাই আমার যুক্তি এবং আসল প্রশ্ন থেকে আমার ডিলিমা। তাই পুনরাবৃত্তি করার জন্য, প্রশ্নটি হল: কখন আমার অ্যান্ড্রয়েড লাইফসাইলে আমার এক্সিকিউটিভিটি সার্ভিস বন্ধ করা উচিত?
লুকাস

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

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

13

এক্সিকিউটর সার্ভিসের থ্রেডগুলি পুনরায় ব্যবহার করার জন্য কি পুরো ধারণাটি নয়? তাহলে এত তাড়াতাড়ি এক্সিকিউটর সার্ভিসটি কেন ধ্বংস করবেন?

হ্যাঁ. আপনার ExecutorServiceপ্রায়শই ধ্বংস এবং পুনরায় তৈরি করা উচিত নয় । ExecutorServiceযখন আপনার প্রয়োজন হয় তখন প্রাথমিকভাবে শুরু করুন (বেশিরভাগ শুরুতে) এবং এটি সম্পন্ন না করা পর্যন্ত এটি সক্রিয় রাখুন।

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

হ্যাঁ. ExecutorServiceঅ্যাপ্লিকেশন থেকে প্রস্থান ইত্যাদির মতো গুরুত্বপূর্ণ পর্যায়ে এটি বন্ধ করার পক্ষে যুক্তিযুক্ত

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

ধরে নিন যে ExecutorServiceআপনার অ্যাপ্লিকেশনটিতে বিভিন্ন ক্রিয়াকলাপ জুড়ে রয়েছে। প্রতিটি ক্রিয়াকলাপ বিরতি / সময়ের বিভিন্ন বিরতিতে পুনরায় শুরু করা হবে এবং তবুও ExecutorServiceআপনার আবেদনের জন্য আপনার প্রয়োজন।

পরিবর্তে রাজ্যের পরিচালনার ExecutorServiceআপনার কাস্টম কার্যকলাপ জীবনচক্র পদ্ধতিতে, স্থানান্তর ExecutorService ব্যবস্থাপনা (ক্রিয়েশন / শাটডাউন) পরিষেবা

ExecutorServiceপরিষেবাতে তৈরি করুন => onCreate()এবং এটিকে সঠিকভাবে বন্ধ করুনonDestroy()

বন্ধ করার প্রস্তাবিত উপায় ExecutorService :

কিভাবে জাভা এক্সিকিউটর সার্ভিস সঠিকভাবে বন্ধ করবেন shut


3

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

উল্লেখিত বই

চ্যাপার: 14 পৃষ্ঠা: 814


0

এক্সিকিউটর সার্ভিসে কল বন্ধ করার কারণ () ason

আজ আমি এমন পরিস্থিতির মুখোমুখি হয়েছি যেখানে that মেশিনটিতে ধারাবাহিক কাজ শুরু করার আগে একটি মেশিন প্রস্তুত না হওয়া পর্যন্ত আমাকে অপেক্ষা করতে হবে।

আমি এই মেশিনটিতে একটি REST কল করি, যদি আমি 503 (সার্ভার অনুপলব্ধ) না পাই তবে মেশিনটি আমার অনুরোধগুলি প্রক্রিয়া করতে প্রস্তুত। সুতরাং, আমি প্রথম আরইএসটি কলের 200 (সাফল্য) না পাওয়া পর্যন্ত আমি অপেক্ষা করি।

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

final ScheduledExecutorService executor = Executors.newScheduledThreadPool(1);
    Runnable task = () -> {
        try {
            int statusCode = restHelper.firstRESTCall();

            if (statusCode == 200) {
                executor.shutdown();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    };

    int retryAfter = 60;
    executor.scheduleAtFixedRate(task, 0, retryAfter, TimeUnit.SECONDS);

দ্বিতীয় পক্ষের প্রশ্ন, অ্যান্ড্রয়েড প্ল্যাটফর্মের সাথে কিছুটা ছোট deals

আপনি যদি আরও কিছু প্রসঙ্গ সরবরাহ করেন তবে আমি উত্তর দিতে পারি! অ্যান্ড্রয়েড বিকাশের সাথে আমার অভিজ্ঞতা থেকে এটি খুব কমই আপনার থ্রেডগুলির প্রয়োজন। আপনি কি এমন গেম বা এমন অ্যাপ্লিকেশন বিকাশ করছেন যা পারফরম্যান্সের জন্য থ্রেডগুলির প্রয়োজন? যদি তা না হয় তবে অ্যান্ড্রয়েডে আমি উপরে বর্ণিত দৃশ্যের মতো সমস্যাগুলি সমাধান করার অন্যান্য উপায় রয়েছে have আপনি বরং প্রসঙ্গের ভিত্তিতে টাইমারটাস্ক, অ্যাসিঙ্কটাস্ক বা হ্যান্ডলার বা লোডার ব্যবহার করতে পারেন। এটি কারণ যদি ইউআইটিথ্রেড দীর্ঘক্ষণ অপেক্ষা করে তবে আপনি কী জানেন: /


0

এটি পরিকল্পনাযুক্ত উদ্যোগ গ্রহণের ক্ষেত্রে যেমন সত্য, তবুও একটি তফসিলি এক্সেকিউটারসেবা জন্য: বুকড অ্যাসাইনমেন্টের নতুন মামলা চলবে না।

আমাদের আশা করা উচিত যে আপনার কাছে একটি আরামের অ্যাপ্লিকেশন রয়েছে যাতে এজেন্ট প্রশাসন চলছে এন এনআর্যান্ডস।

আমি অনায়াসে এর অর্থ ধরছি না? এজেন্ট প্রশাসনের কাছে আরও অ্যাসাইনমেন্ট জমা দেওয়ার বিকল্প না করার জন্য সম্ভবত আপনার আবেদনের প্রয়োজন হবে এবং এর মধ্যে আপনার বর্তমান এন-এনডিয়ার্কিংগুলি শেষ করার জন্য আপনাকে কঠোরভাবে বসে থাকতে হবে।

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

আপনার ক্রিয়াকলাপগুলি হস্তক্ষেপের প্রতিক্রিয়া দেখানোর উদ্দেশ্যে করা ইভেন্টটি এটি দুর্দান্ত কাজ করবে।

আর একটি উদ্বেগজনক পরিস্থিতি হ'ল বিন্দুটি যেখানে আপনি একটি শিডিউডএক্সেকিউটারসেবা করেছেন যা একটি ক্রিয়াকলাপ চালিয়ে যায়।

ক্রিয়াকলাপ বন্ধ করার সর্বোত্তম উপায় হ'ল কল বন্ধ করা ()

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