Windows Task Scheduler में, आप टास्क को शेड्यूल पर और विशिष्ट इवेंट लॉग में रजिस्टर होने के बाद दोनों चला सकते हैं। (इसका वर्णन लेख "Event Triggers in Windows" में किया गया है।) इस लेख में हम विचार करेंगे कि पिछले टास्क के पूरा होने के बाद शेड्यूलर टास्क को ऑटोमैटिकली कैसे शुरू करें। आइए शेड्यूलर टास्क चलाने की निर्भरता को कॉन्फिगर करने के एल्गोरिदम पर नज़र डालें, जिसे आप अपनी आवश्यकताओं को पूरा करने के लिए कस्टमाइज़ कर सकते हैं।
मेरे मामले में, एक स्क्रिप्ट पूरी होने के बाद मुझे दूसरी स्क्रिप्ट को दूसरे यूजर अकाउंट से शुरू करना था। इसलिए इन क्रियाओं को एक ही टास्क में संयोजित नहीं किया जा सकता था।
मान लीजिए, हमें Pong शेड्यूलर टास्क को Ping टास्क पूरा होने के बाद शुरू करना है। जब कोई टास्क शुरू या पूरा होता है, तो इस इवेंट के बारे में जानकारी सिस्टम लॉग में रजिस्टर होती है। हम Ping टास्क पूरा होने के इवेंट पर ध्यान केंद्रित करेंगे।
Task Scheduler कंसोल खोलें (Taskschd.msc), Ping इवेंट का पता लगाएं और चुनें, और नीचे पैनल में History टैब पर जाएं, जिसमें इस टास्क से जुड़े सभी इवेंट के बारे में जानकारी होती है। हमें इवेंट ID 102 (Task completed) की आवश्यकता है जो टास्क पूरा होने के बाद जेनरेट होता है।
इवेंट के विस्तृत विवरण को Detail टैब पर जाकर खोलें और इवेंट के XML View को इनेबल करें। XML डेटा के अनुसार, आप इवेंट के सभी विवरण प्राप्त कर सकते हैं जो फ़िल्टर बनाने के लिए आवश्यक हैं। विशेष रूप से, हमें चाहिए:
- EventID: 102
- Provider-Name: Microsoft-Windows-TaskScheduler
- Channel: Microsoft-Windows-TaskScheduler/Operational
- TaskName: \ping
Pong टास्क के लिए ट्रिगर बनाते समय, हमें टास्क शुरू करने के लिए ट्रिगर कंडीशन बनानी होगी जब लॉग में इवेंट ID 102 दिखाई दे (टास्क ट्रिगर On an event)। लेकिन समस्या यह है कि EventID 102 किसी भी टास्क के पूरा होने के बाद दिखाई देता है, न कि केवल Ping टास्क के बाद।
हालांकि, यदि मानक फ़िल्टर इवेंट को पर्याप्त सटीक रूप से चुनने में मदद नहीं करता है, तो अधिक लचीली इवेंट चयन कंडीशन (Custom) बनाना संभव है। New Event Filter पर क्लिक करें:
XML व्यू के इवेंट से डेटा स्पेसिफाई करके एक नया इवेंट फ़िल्टर बनाएं:
Events Logs: Microsoft-Windows-TaskScheduler/Operational
Event source: TaskScheduler
Task category: Task completed
फिर XML टैब पर जाएं और निम्न फ़िल्टर व्यू (XPath) देखें:
<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and Task = 102]]</Select>
</Query>
</QueryList>
XPath कोड को निम्न में बदलें, जो लॉग को फ़िल्टर करेगा और \ping टास्क के लिए TaskCompleted इवेंट खोजेगा:
<QueryList>
<Query Id="0" Path="Microsoft-Windows-TaskScheduler/Operational">
<Select Path="Microsoft-Windows-TaskScheduler/Operational">*[System[Provider[@Name='Microsoft-Windows-TaskScheduler'] and Task = 102]]</Select>
</Query>
</QueryList>
इवेंट जोड़ने के बाद, ping टास्क शुरू करने का प्रयास करें। जब यह पूरा हो जाता है, तो pong टास्क तुरंत शुरू होना चाहिए।
XPath व्याख्या नीचे प्रदर्शित है: