টাইমার ভিত্তিক ইভেন্ট ট্রিগার

আমি বর্তমানে নির্দিষ্ট প্রয়োজনীয়তা সঙ্গে একটি প্রকল্পের কাজ করছি। নিম্নরূপ একটি সংক্ষিপ্ত ওভারভিউ হয়:

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

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

1) Adapt the trigger table to store two extra parameters. One being "Is this time-based or manually added?" and a nullable field to store the timing details (exact format to be determined). If it is a manaully created trigger, mark it as processed when the trigger has been fired, but not if it is a timed trigger.
or
2) Create a second windows service that creates the triggers on-the-fly at timed intervals.

দ্বিতীয় বিকল্পটি আমার কাছে হতাশাজনক বলে মনে হচ্ছে, তবে বিকল্প 1 এর ব্যবস্থাপনাটি সহজেই একটি প্রোগ্রামিং নাটক চালু করতে পারে (টেবিলের সর্বশেষ পোষ্টটি যদি আগুনের প্রয়োজন হয় তবে তা কীভাবে আপনি জানেন, এবং কিভাবে আপনি এটি বন্ধ করবেন পরের নির্বাচনে পুনঃপ্রবর্তন

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

0
ro fr hi

3 উত্তর

আমি এটা দেখতে উপায় এই হল।

আপনার একটি উইন্ডোজ সার্ভিস আছে, যা একটি নির্ধারনের ভূমিকা পালন করছে এবং এতে কিছু ক্লাস আছে যা কেবলমাত্র ওয়েব সার্ভারকে কল করে এবং আপনার ডেটাবেসে তথ্য রাখে।

তাই, আপনি এইগুলি সরাসরি WebUI থেকে সরাসরি ব্যবহার করতে পারেন এবং WebUI ট্রিগারের উপর ভিত্তি করে ডেটা আমদানি করতে পারেন।

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

আপনি এমনকি পুরো কোডটিকে একটি এক্সে রূপান্তর করতে পারেন যা আপনি তখন Windows Scheduler ব্যবহার করে নির্ধারণ করতে পারেন। এবং যখনই ব্যবহারকারী ওয়েব UI থেকে কর্ম আরম্ভ করে তখন একই exe কল করুন।

0
যোগ

@Vaibhav

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

* এটি কি সবসময়ই এমন নয় যে একটি টেকনিক্যালি "ভাল" সমাধান বহিরাগত কারণগুলির দ্বারা স্টিমিড করা হয়?

0
যোগ

কেন উইন্ডোজ সার্ভিস পরিবর্তে একটি এসকিউএল কাজ ব্যবহার করবেন না? আপনি সঞ্চিত প্রসেসে আপনার সব ডিবি "ট্রিগার" কোড encapsulate পারেন। তারপর আপনার UI এবং এসকিউএল চাকরী একই স্টোরেজ পদ্ধতিতে কল করতে পারে এবং এটি ম্যানুয়ালি বা একটি সময় ব্যবধানে একইভাবে ট্রিগার তৈরি করতে পারে।

0
যোগ