1s 8.3 সময়সূচী অনুযায়ী বহিরাগত প্রক্রিয়াকরণ. সর্বজনীন নিয়ন্ত্রক কাজ

একটি রুটিন টাস্ক তৈরি করা

আসুন একটি রুটিন টাস্ক তৈরি করি "পারফর্ম প্রসেসিং"।

আসুন নির্ধারিত টাস্কের ব্যবহার অক্ষম করি যাতে কনফিগারেশন আপডেট করার সময় এটি স্বয়ংক্রিয়ভাবে চলবে না।

চলুন একটি পদ্ধতি নির্ধারণ করি যা একটি রুটিন টাস্ক চালু হলে ট্রিগার হবে:RoutineTasks.RoutineTaskExecutionProcessing এর মডিউল.

পদ্ধতি নিজেই এর মত দেখায়:

পদ্ধতির রুটিন টাস্ক এক্সেকিউশন প্রসেসিং(কী) এক্সপোর্ট

রুটিনটাস্কের পরামিতি।PerformProcessingWithParameters(Key);

প্রক্রিয়া শেষ

আমরা রুটিন কাজের জন্য একটি রেফারেন্স বই তৈরি করি

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

রেফারেন্স বই "নির্ধারিত কাজের পরামিতি" :

প্রয়োজনীয়তা :

· লঞ্চের আগে কোড- সীমাহীন স্ট্রিং - 1C ভাষায় কোড যা লঞ্চের আগে কার্যকর করা আবশ্যক।

· কনফিগারেশন থেকে প্রক্রিয়াকরণ - লাইন (100) - কনফিগারেশন থেকে প্রক্রিয়াকরণ শনাক্তকারী

· ডিরেক্টরি থেকে প্রক্রিয়াকরণ - লাইন (100) - ডিরেক্টরি উপাদান "বাহ্যিক প্রক্রিয়াকরণ" লিঙ্ক, যদি কনফিগারেশনে একটি থাকে

· 1C অ্যাপ্লিকেশনের মাধ্যমে সম্পাদন করুন - বুলিয়ান - একটি পৃথক 1C অ্যাপ্লিকেশন তৈরি করা হবে এবং এটিতে একটি রুটিন টাস্ক চালু করা হবে। 8.1-এর জন্য তৈরি করা হয়েছে, যেখানে নির্ধারিত কাজ চলমান সার্ভারে সমস্ত অ্যাপ্লিকেশন পদ্ধতি উপলব্ধ নেই।

· লঞ্চ কোড- - সীমাহীন লাইন - 1C ভাষায় কোড যা একটি নির্ধারিত কাজ চালু হলে কার্যকর করা হবে।

আসুন উপাদানটির আকৃতি তৈরি করি :

“Create Reg-এ ক্লিক করে। টাস্ক" একটি কী কোড সহ একটি রুটিন টাস্ক প্রোগ্রাম্যাটিকভাবে তৈরি করা হয়:

পদ্ধতির বেসিক অ্যাকশনসফর্ম ক্রিয়েটরেগল টাস্ক(বোতাম)

পরিবর্তনশীল কাজ;

কী = AbbrLP(কোড);

টাস্ক = RoutineTasks.CreateRoutineTask("PerformProcessing");

টাস্ক.নাম = কী;

Task.Key = কী;

পরামিতি = নতুন অ্যারে();

পরামিতি যোগ করুন(কী);

Task.Parameters = পরামিতি;

Task.Write();

প্রক্রিয়া শেষ

একটি নির্ধারিত কাজ শুরু করা হচ্ছে

আমরা তৈরি প্রতিটি রুটিন টাস্ক একটি কী আছে:

এই কীটি "রুটিন টাস্কের পরামিতি" ডিরেক্টরির কোডের সাথে মিলে যায়; এটি একটি কাজ শুরু করার সময় অনুসন্ধান করতে ব্যবহৃত হয়। যদি ডিরেক্টরি এন্ট্রি পাওয়া না যায়, টাস্কটি কার্যকর করা হয় না।

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

বিশদগুলির নির্বাচিত মানগুলির উপর নির্ভর করে, হয় 1C ভাষার কোডটি চলবে, বা কনফিগারেশন থেকে প্রক্রিয়াকরণ শুরু হবে, বা স্ট্যান্ডার্ড "বাহ্যিক প্রক্রিয়াকরণ" রেফারেন্স বই থেকে প্রক্রিয়াকরণ শুরু হবে।

1C81 এর জন্য, এক্সিকিউশন একটি নতুন অ্যাপ্লিকেশনে প্রদান করা হয়েছে - যাতে আপনি বাহ্যিক প্রক্রিয়াকরণের ব্যবহার সহ শুধুমাত্র ক্লায়েন্টে উপলব্ধ কোড ব্যবহার করতে পারেন। এটি করার জন্য, আপনাকে "1C অ্যাপ্লিকেশনের মাধ্যমে চালান" চেকবক্সটি চেক করতে হবে। অন্যথায়, নির্ধারিত কাজটি সার্ভারে কার্যকর করা হবে।

আমি একটি নতুন তৈরি রুটিন টাস্কের জন্য "ব্যবহারকারী" ক্ষেত্রে একজন ব্যবহারকারীকে সেট করার পরামর্শ দিই, যাতে কাজটি নির্দিষ্ট অধিকারের অধীনে সম্পাদিত হয়। আমি এমন একজন ব্যবহারকারীকে সম্পূর্ণ অধিকার দেওয়ার পরামর্শ দিই। আমি ব্যবহারকারী ব্যবহার করি "রোবট».

রুটিন টাস্ক ফর্ম থেকে "শিডিউল" হাইপারলিঙ্ক ব্যবহার করে রুটিন টাস্ক শিডিউল তৈরি করা হয়। আপনি "রুটিন টাস্ক কনসোল" প্রসেসিং ব্যবহার করতে পারেন।

এই নিবন্ধে, আমরা পরিচালিত অ্যাপ্লিকেশন মোডে 1C 8.3-এ বাহ্যিক প্রক্রিয়াকরণ তৈরি করার জন্য ধাপে ধাপে নির্দেশাবলী বিবেচনা করব; সেই অনুযায়ী, আমরা পরিচালিত ফর্মগুলি ব্যবহার করব। এবং সবচেয়ে গুরুত্বপূর্ণভাবে, আমরা শিখব কীভাবে এটিকে স্ট্যান্ডার্ড সাবসিস্টেম সংস্করণ 2.0 এবং নতুন সংস্করণের একটি লাইব্রেরিতে নির্মিত 1C কনফিগারেশনের "বাহ্যিক প্রক্রিয়াকরণের" প্রক্রিয়ার সাথে সংযুক্ত করা যায়।

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

এটি করার জন্য, আমরা অবিলম্বে প্রোগ্রামে প্রয়োজনীয় সেটিংস তৈরি করব (আমরা 1C 8.3 কনফিগারেশন বিবেচনা করছি: পরিচালিত ফর্মগুলিতে "এন্টারপ্রাইজ অ্যাকাউন্টিং 3.0")।

এই বাক্সটি চেক করা আমাদের বাহ্যিক প্রক্রিয়াকরণ ব্যবহার করার সুযোগ দেয়।

একটি উদাহরণ ব্যবহার করে 1C 8.3 এ একটি নতুন বাহ্যিক প্রক্রিয়াকরণ তৈরি করা

এখন কনফিগারেশনে যাওয়া যাক। "ফাইল" মেনুতে, "নতুন..." নির্বাচন করুন। তৈরি করা ফাইলের ধরন নির্বাচন করার জন্য একটি উইন্ডো খুলবে। "বাহ্যিক প্রক্রিয়াকরণ" নির্বাচন করুন:

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

এর একটি নতুন নিয়ন্ত্রিত প্রক্রিয়াকরণ ফর্ম যোগ করা যাক. আমরা নির্দেশ করি যে এটি প্রক্রিয়াকরণের একটি ফর্ম এবং এটি প্রধান:

আমাদের ফর্মটিতে দুটি বিবরণ থাকবে:

  • নামকরণ গ্রুপ - "নামকরণ" ডিরেক্টরির লিঙ্ক;
  • ভ্যাট রেট নির্বাচন করুন - ভ্যাট হারের স্থানান্তরের লিঙ্ক।

আমরা উপরের ডান উইন্ডোতে "বৈশিষ্ট্য" কলামে বিবরণ তৈরি করি। উপরের বাম উইন্ডোতে মাউস দিয়ে তাদের টেনে আনুন। নতুন বিবরণ অবিলম্বে নীচের ফর্মে প্রদর্শিত হবে.

"উপর" - "নিচে" তীরগুলি ব্যবহার করে বিশদ ক্রম পরিবর্তন করা যেতে পারে:

বিনামূল্যে 1C-তে 267টি ভিডিও পাঠ পান:

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

ফর্ম মডিউলে একই নামের একটি পদ্ধতি তৈরি করা হবে। এতে আমরা সার্ভারে পদ্ধতিটিকে কল করব:

&অনক্লায়েন্ট

পদ্ধতি সেট ভ্যাট হার (কমান্ড)

SetVATRAteOnServer();

প্রক্রিয়া শেষ

সার্ভারের পদ্ধতিতে, আমরা একটি ছোট অনুরোধ লিখব এবং ভ্যাট হার নির্ধারণের সাথে সম্পর্কিত ক্রিয়াকলাপ লিখব:

সার্ভারে

পদ্ধতি SetVATRAteOnServer()

অনুরোধ = নতুন অনুরোধ;
Request.Text =
"পছন্দ করা
| নামকরণ.লিঙ্ক
| থেকে
| ডিরেক্টরি। নামকরণ AS নামকরণ
| কোথায়
| নামকরণ.লিঙ্ক ইন হায়ারার্কি (এবং নামকরণ গ্রুপ)
| এবং নামকরণ নয়।মার্ক মুছে ফেলা
| এবং নামকরণ নয়। এটি একটি গ্রুপ";

Request.SetParameter("আইটেম গ্রুপ", আইটেম গ্রুপ);
ResRequest = Request.Execute();
SelectRecordDet = ResRequest.Select();

যখন SelectRecordDet.Next() লুপ

প্রয়াস
SprNomObject.Write();
ব্যতিক্রম
রিপোর্ট("অবজেক্ট লেখার ত্রুটি""" + SprNomObject + """!
|» + বর্ণনা ত্রুটি());
শেষপ্রয়াস;

এন্ডসাইকেল;

প্রক্রিয়া শেষ

আমরা "ফর্ম" ট্যাবে ফিরে আসি, ফর্মটিতে একটি বোতাম যোগ করুন এবং কমান্ডের সাথে এটি সংযুক্ত করুন:

যেমন, আমাদের প্রক্রিয়াকরণ ব্যবহারের জন্য প্রস্তুত। এটিকে কল করতে, "1C এন্টারপ্রাইজ" মোডে, আপনাকে "ফাইল" - "ওপেন" মেনুতে যেতে হবে এবং তৈরি করা ফাইলটি নির্বাচন করতে হবে।

যাইহোক, এই মোডে কাজ করা ডিবাগিং প্রক্রিয়াকরণের জন্য সুবিধাজনক, কিন্তু ব্যবহারকারীর জন্য সম্পূর্ণরূপে উপযুক্ত নয়। ব্যবহারকারীরা "তাদের নখদর্পণে" অর্থাৎ ডাটাবেসেই সবকিছু রাখতে অভ্যস্ত।

"অতিরিক্ত রিপোর্ট এবং প্রক্রিয়াকরণ" বিভাগটি এটিই।

কিন্তু সেখানে আমাদের প্রক্রিয়াকরণ যোগ করার জন্য, আমাদের প্রথমে এটির একটি বিবরণ দিতে হবে এবং প্রোগ্রামটিকে এর বৈশিষ্ট্যগুলি বলতে হবে।

"বাহ্যিক প্রক্রিয়াকরণ সম্পর্কে তথ্য" ফাংশনের বর্ণনা

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

ফাংশন InformationOnExternalProcessing() Export

DataForReg = নতুন কাঠামো();
DataForReg.Insert("নাম", "ভ্যাট হার সেটিং");
DataForReg.Insert("SafeMode", True);
DataForReg.Insert("সংস্করণ", "ver.: 1.001");
DataForReg.Insert("তথ্য", "নামকরণ ডিরেক্টরিতে ভ্যাট হার সেট করার জন্য প্রক্রিয়াকরণ");
DataForReg.Insert("দেখুন", "অতিরিক্ত প্রক্রিয়াকরণ");

CommandTable = NewValueTable;
TabZnCommands.Columns.Add("Identifier");
TabZnCommands.Columns.Add("ব্যবহার");
TabZnCommands.Columns.Add("View");

NewRow = TabZnCommands.Add();
NewString.Identifier = "ওপেনপ্রসেসিং";
NewRow.Use = "ওপেনফর্ম";
NewRow.View = "ওপেন প্রসেসিং";
DataForReg.Insert("কমান্ড", TabZnCommands);

DataForReg রিটার্ন;

এন্ড ফাংশন

রেজিস্ট্রেশন ডেটা স্ট্রাকচারের কোন ক্ষেত্রগুলি ব্যবহার করতে হবে তা আরও ভালভাবে বোঝার জন্য, আসুন "অতিরিক্ত রিপোর্ট এবং প্রক্রিয়াকরণ" ডিরেক্টরির বিশদ বিবরণ দেখি:

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

কাঠামোর কোন ক্ষেত্রগুলি প্রয়োজন তা নির্ধারণ করতে, আপনি প্রথমে এটি বর্ণনা করতে পারবেন না, কেবল একটি খালি তৈরি করুন এবং তারপর ডিবাগার ব্যবহার করুন। প্রক্রিয়াকরণ নিবন্ধন করার সময় আপনি যদি মডিউলগুলি ট্রেস করেন, তাহলে তা অবিলম্বে স্পষ্ট হয়ে যায় কোন ক্ষেত্রগুলির প্রয়োজন এবং কোনটি নয়৷

1C 8.3 এ বহিরাগত প্রক্রিয়াকরণ সংযোগ করা হচ্ছে

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

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

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

"C:\Program Files (x86)\1cv8\8.3.5.xxxx\bin\1cv8.exe" ENTERPRISE /DisableStartupMessages /FC:\path to database /N"UserName" /P"User Password"/Execute from:\ প্রক্রিয়াকরণের পথ\self-processing.epf

আসুন পাঠোদ্ধার করি:

1. "C:\Program Files (x86)\1cv8\8.3.5.xxxx\bin\1cv8.exe" এন্টারপ্রাইজ - এই ক্ষেত্রে 1C ইঞ্জিনটি নিজেই 8.3, পথটি নিজেই পরীক্ষা করুন, এটি সংস্করণের উপর নির্ভর করে পৃথক হয় এবং ইঞ্জিন সহ শেষটি আপডেট করার পরে এটি সম্পাদনা করতে ভুলবেন না।

2. /DisableStartupMessages - সিস্টেম শুরু হলে সমস্ত বার্তা অক্ষম করুন।

4. /N"UserName" /P"UserPassword" - যথাক্রমে /N ব্যবহারকারীর নাম, এছাড়াও অবিলম্বে একটি স্থান এবং /P পাসওয়ার্ড ছাড়াই।

5. /Execute from:\path to processing\self-processing.epf - /Execute আমাদের প্রক্রিয়াকরণ শুরু করে, পথ এবং নাম এই কী অনুসরণ করা উচিত।

এখন এটিই, যা বাকি থাকে তা হল আমাদের cmd ফাইল টাস্ক শিডিউলারে যুক্ত করা: avtozapusk1c.cmd, এর লঞ্চের সময়সূচী নির্দেশ করে।

বাহ্যিক প্রক্রিয়াকরণের কাজ নিরীক্ষণ করার জন্য, আমি এটির জন্য একটি পৃথক ব্যবহারকারী তৈরি করার পরামর্শ দিই; এটিও সর্বোত্তম যে প্রক্রিয়াকরণ নিজেই একটি লগ ফাইল তৈরি করে, যা পর্যায়ক্রমে আপনার ইমেলে পাঠানো হয়।

এই সহজ সরঞ্জামগুলি প্রতিদিনের রুটিন অপারেশনগুলিকে স্বয়ংক্রিয় করতে সহায়তা করে, আপনার জন্য শুভকামনা!

2017-12-19T18:29:06+00:00

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

নির্ধারিত লঞ্চ "টাস্ক শিডিউলার" নামক একটি স্ট্যান্ডার্ড উইন্ডোজ মেকানিজমের মাধ্যমে কাজ করে।

এবং যখন ব্যবহারকারী সময়সূচী সেটিংস সেট করে ...

আপডেটার স্বয়ংক্রিয়ভাবে সময়সূচীতে প্রয়োজনীয় কাজগুলি তৈরি করে:

যা আপনার ভুলে যাওয়া উচিত নয়

ব্যবহারকারী নির্বাচন

আমাদের ভুলে যাওয়া উচিত নয় যে আমরা নির্ধারিত ক্রিয়াকলাপ চালানোর জন্য যে ব্যবহারকারীকে নির্দিষ্ট করি...

"ব্যাচের কাজ হিসাবে লগইন" করার সিস্টেম অধিকার থাকতে হবে।

একজন ব্যবহারকারীর প্রয়োজনীয় অধিকার আছে কিনা তা কীভাবে পরীক্ষা করবেন?

সবচেয়ে সহজ বিকল্প হল শিডিউলারে তৈরি করা টাস্কে ডান-ক্লিক করা এবং "রান" নির্বাচন করা:

যদি, টাস্ক শেষ হওয়ার পরে, এর লঞ্চের ফলাফল সফল হয় ...

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

একটি নন-খালি পাসওয়ার্ড থাকতে হবে। এটি একটি উইন্ডোজ নিরাপত্তা প্রয়োজন. আপনি যদি এই নির্দিষ্ট সীমাবদ্ধতার মুখোমুখি হন তবে সবচেয়ে সঠিক সমাধান হবে:

  • অথবা বর্তমান ব্যবহারকারীকে একটি পাসওয়ার্ড বরাদ্দ করুন যার অধীনে আপনি একটি সময়সূচীতে আপডেটার চালাতে যাচ্ছেন
  • অথবা একটি পাসওয়ার্ড সহ সিস্টেমে একটি পৃথক ব্যবহারকারী তৈরি করুন, যা আপডেটার সময়সূচীতে নিবন্ধিত হবে

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

ঘাঁটি নির্বাচন করা

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

এই ক্ষেত্রে, চেকমার্কটি সাধারণ তালিকার বেসের পাশে আছে কিনা তা বিবেচ্য নয়:

এই চেকবক্সগুলি (সাধারণ তালিকায়) শুধুমাত্র ক্রিয়াকলাপগুলির ম্যানুয়াল লঞ্চের উদ্দেশ্যে এবং কোনভাবেই নির্ধারিত লঞ্চকে প্রভাবিত করে না৷

স্টার্টআপ অর্ডার

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

এর মানে হল যে, উদাহরণস্বরূপ, যদি 22-00-এ সংঘটিত হওয়ার জন্য আমাদের আর্কাইভিং কনফিগার করতে হয়, এবং ডাটাবেসগুলি এটি শেষ হওয়ার সাথে সাথে আপডেট করা হয়, তাহলে 22-00-এ সংরক্ষণাগারের শুরুর সময় নির্দিষ্ট করা এবং আপডেট করার জন্য এটি যথেষ্ট। , উদাহরণস্বরূপ, 22-01।

আপনি একটি আরো জটিল সময়সূচী প্রয়োজন হলে কি?

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

এই ক্ষেত্রে, আমাদের টাস্ক শিডিউলারের সম্পূর্ণ শক্তির সুবিধা নেওয়া দরকার।

প্রথমত, আমরা আপডেটারের মাধ্যমে সময়সূচী সেট আপ করি, নির্দেশ করে যে একটি নির্দিষ্ট সময়সূচী শিডিউলারে কনফিগার করা হবে:

এবং শুধুমাত্র তারপরে উইন্ডোজ শিডিউলারে আপডেটার দ্বারা তৈরি কাজের বৈশিষ্ট্যগুলি খুলুন:

এবং উপযুক্ত ট্যাবে আমরা আমাদের হৃদয় যা চায় তা কনফিগার করি:

কিভাবে কিছু নির্ধারিত অপারেশন থেকে একটি ডাটাবেস বাদ দিতে হয়

আসুন ধরে নিই যে আপডেট এবং সংরক্ষণাগারের জন্য আমাদের একটি সময়সূচী কনফিগার করা আছে:

কিন্তু একই সময়ে, আমরা একটি ডাটাবেস নির্ধারিত সংরক্ষণাগারে অংশগ্রহণ করতে চাই, তবে নির্ধারিত আপডেটে অংশগ্রহণ করতে চাই না।

এটি কীভাবে অর্জন করা যায় - সর্বোপরি, আমাদের কাছে শিডিউলে অংশগ্রহণকারী বেসের একই তালিকা রয়েছে:

এবং এটা করা খুবই সহজ।

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

এটিতে ক্লিক করুন এবং নির্ধারিত লঞ্চ থেকে এই ডাটাবেস আপডেট করা বাদ দিন:

এটিকে ঐটির মত দেখতে হবে:

অন্যান্য পরামিতিগুলির সাথে একটি সময়সূচীতে চালানো কি সম্ভব?

আমি এই বিষয়টিতে বিশেষ মনোযোগ আকর্ষণ করতে চাই যে টাস্ক শিডিউলারের কাজটি নির্দিষ্ট কমান্ড লাইন পরামিতি সহ আপডেটারের নিয়মিত প্রবর্তন:

এবং কমান্ড লাইনের মাধ্যমে চালু করার জন্য আপডেটারের অনেকগুলি পরামিতি রয়েছে।

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

সব আপডেটার কমান্ড লাইন সুইচ সম্পর্কে.

আপডেটারটি সময়সূচী অনুসারে চালু হয়েছে কিনা তা কীভাবে খুঁজে পাবেন

এটি ঘটে যে সময়সূচী সেট আপ করা হয়েছে বলে মনে হয়, কিন্তু কিছু ভুল হয়ে যায়।

এবং আমরা নিশ্চিত নই যে আপডেটারটি সেই রাতে চালু হয়েছিল কিনা।

প্রথমত, আমি প্রধান আপডেটার উইন্ডোতে আপনার দৃষ্টি আকর্ষণ করতে চাই যেখানে নির্ধারিত ক্রিয়াকলাপগুলির স্থিতি প্রদর্শিত হয়:

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

আমরা সম্পূর্ণ আপডেটার রিপোর্ট লগেও যেতে পারি...

এবং দেখুন কাজগুলো সম্পন্ন হয়েছে কিনা।

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

উইন্ডোজ শিডিউলার লগ সক্রিয় করতে, "শিডিউল অনুযায়ী চালান" ডায়ালগে যান এবং "ওপেন উইন্ডোজ শিডিউলার" বোতামে ক্লিক করুন:

এটি উইন্ডোজ কন্ট্রোল প্যানেল (প্রশাসন বিভাগ) থেকেও করা যেতে পারে।

এখানে আমরা "সমস্ত কাজের লগ সক্ষম করুন" আইটেমটি খুঁজে পাই এবং ক্লিক করি:

প্রস্তুত! এখন আমরা শিডিউলারে যেকোনো কাজের ইতিহাস দেখতে পারি।

উদাহরণস্বরূপ, আসুন আপডেটারের কাজগুলির একটি হাইলাইট করি:

আপডেটার কাজগুলি চালানোর জন্য কীভাবে একটি ক্লাউড মনিটরিং সিস্টেম সেট আপ করবেন

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

এই পরিস্থিতি খুব সম্ভব যদি আমরা একটি সময়সূচীতে শুরু করার জন্য সংরক্ষণাগার কনফিগার করি, এবং তারপর:

  • অন্য একটি সার্ভার প্রশাসক আমাদের অ্যাকাউন্ট থেকে শিডিউলার থেকে সংরক্ষণাগার শুরু করার অধিকার কেড়ে নিয়েছে এবং এই ক্ষেত্রে আপডেটার আমাদের ইমেলের মাধ্যমে একটি বিজ্ঞপ্তি পাঠাতেও সক্ষম হবে না, কারণ এর জন্য এটি শুরু করা দরকার, কিন্তু করার কোনও অধিকার নেই তাই...
  • বা অন্য কিছু ত্রুটি ঘটেছে এবং আমাদের একটি ত্রুটি বার্তা পাঠানোর জন্য আপডেটারের জন্য সার্ভারে কোনো ইন্টারনেট নেই...
  • অথবা আমরা নিজেরাই ভুলবশত আপডেটারে নির্ধারিত আর্কাইভিং বন্ধ করে দিয়েছি...
  • আপনি কখনই জানেন না কি হতে পারে...

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

এটি, আমার মতে, healthchecks.io নামে একটি একেবারে উজ্জ্বল জিনিস। এই ছেলেদেরও অর্থপ্রদানের পরিকল্পনা রয়েছে, তবে তাদের বিনামূল্যের পরিকল্পনা আমাদের জন্য ভাল।

নিম্নরূপ ধারণা। আমরা তাদের ওয়েবসাইটে নিবন্ধন করি এবং আমাদের ব্যক্তিগত অ্যাকাউন্টে আমাদের বলার সুযোগ আছে:

  • হেই, হেলথ চেকস, আমাকে একটি ইউনিক ইউআরএল (একটি ইন্টারনেট রিসোর্সের ঠিকানা) দিন।
  • হেলথ চেক, অমুক এবং অমুক সময়ের মধ্যে যদি কেউ এই ঠিকানায় নক (অনুরোধ) না করে, তাহলে অমুক ইমেলের মাধ্যমে আমাকে এই বিষয়ে অবহিত করুন।

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

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

আমি আলাদাভাবে উল্লেখ করবযে বর্ণিত মনিটরিং সিস্টেমটি বাতিল করে না, তবে পরিপূরক, ত্রুটি সম্পর্কে ইমেল বিজ্ঞপ্তি, যা পরিস্থিতির উপর সম্পূর্ণ নিয়ন্ত্রণের জন্য আপডেটারে কনফিগার করা আবশ্যক।

একটি আপডেটারের সাথে হেলথচেক সেট আপ করার জন্য সবচেয়ে সহজ দৃশ্যকল্প

নামের একটি সার্ভারে দৈনিক আর্কাইভিং সেট আপ করা যাক ডেটা সার্ভারযা কোম্পানির অন্তর্গত এলএলসি "রোমাশকা":

এবং আমরা চাই যে আপডেটারটি হঠাৎ করে সংরক্ষণাগারের জন্য দৌড়ানো বন্ধ করে বা এই ধরনের লঞ্চগুলি অস্বাভাবিকভাবে শেষ হলে হেলথচেকগুলি আমাদেরকে অবহিত করুক।

3. যে ইমেল ঠিকানায় আপনি বিজ্ঞপ্তি পেতে চান তার সাথে নিবন্ধন করুন৷

3. "চেক" বিভাগে যান এবং বড় সবুজ "অ্যাড চেক" বোতামে ক্লিক করুন।

5. আসুন এই চেকের নাম পরিবর্তন করে OOO "রোমাশকা" (ডেটা সার্ভার, সংরক্ষণাগার) করি। এটি করা দরকার যাতে আমরা বুঝতে পারি যে এই চেকটি ঠিক কীসের সাথে সম্পর্কিত (রোমাশকা এলএলসি কোম্পানির ডেটা সার্ভার নামে একটি সার্ভারে সংরক্ষণাগার করা):

6. যাচাইকরণের সময়কাল নির্দিষ্ট করুন (আর্কাইভিং দিনে একবার শুরু করা উচিত, সংরক্ষণাগার প্রক্রিয়া নিজেই 12 ঘন্টা পর্যন্ত সময় নিতে পারে):

দ্বিতীয় স্লাইডার (অনুগ্রহ) সময়কালের ঠিক অনুমতিযোগ্য অতিরিক্ত, অর্থাৎ যে সময়টি সংরক্ষণাগার প্রক্রিয়াটি স্থায়ী হতে পারে।

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

উদাহরণস্বরূপ, যদি আমরা রাত 10:00 টায় শুরু করার জন্য একটি আপডেট নির্ধারণ করে, তাহলে আজ এই আপডেটটি 11:00 pm এ শেষ হতে পারে এবং আগামীকাল (অনেক নতুন আপডেট প্রকাশিত হয়েছে) এটি 4 টা পর্যন্ত চলবে।

তাই স্বাস্থ্য পরীক্ষা থেকে মিথ্যা ইতিবাচক এড়াতে 12 ঘন্টার অতিরিক্ত মার্জিন।

পিরিয়ড সেট করার ফলাফল এইরকম হবে:

7. কিন্তু আপনি দেখতে পাচ্ছেন, শেষ পিং ক্ষেত্রটি খালি (কখনও নয়)। আর্কাইভ করার সময় আপডেটার দ্বারা এই ঠিকানাটি অ্যাক্সেস করায় এটি আপডেট করা হবে। এবং যদি 1 দিন এবং 12 ঘন্টার বেশি সময়ের জন্য কোন অনুরোধ না থাকে, তাহলে HealthChecks অ্যালার্ম বাজাবে এবং ইমেলের মাধ্যমে আমাদের অবহিত করবে।

আপনি নিবন্ধটি পছন্দ করেছেন? বন্ধুদের সাথে ভাগাভাগি করা: