Task Scheduler
दो पूरक surfaces: one-off jobs के लिए एक in-app scheduler (Ctrl+Alt+S) और एक OS-level scheduler जो bundled `nbcli` helper के साथ cron / launchd / Windows Task Scheduler entries register करता है (Ctrl+Alt+Shift+K)।
यह क्या है
NoSqlStudio UI से recurring DBA chores — mongodump, mongoexport, custom shell scripts — schedule करें। In-app scheduler तब चलता है जब ऐप खुला हो; OS scheduler आपके operating system के native scheduler को job सौंप देता है ताकि ऐप बंद होने पर भी चले।
कब उपयोग करें
One-off / dev-time runs के लिए in-app scheduler का उपयोग करें। Production-grade backups, S3 के लिए recurring exports, weekly mask-and-refresh jobs, या workstation reboot से बचने वाली किसी भी चीज़ के लिए OS scheduler का उपयोग करें।
इसे कैसे खोलें
- In-app jobs — Tools menu → Tasks Scheduler खोलें, या Ctrl+Alt+S दबाएँ।
- OS jobs — Tools menu → OS Task Scheduler खोलें, या Ctrl+Alt+Shift+K दबाएँ।
- हर एक registered tasks की सूची + एक New Task बटन के साथ एक workspace tab खोलता है।
एक OS task बनाना
- एक task type चुनें: mongodump, mongoexport, shell script, या predefined templates में से एक (mask-and-copy, schema-diff-report, audit-export)।
- एक schedule चुनें: hourly / daily / weekly / monthly / cron expression (जैसे हर रात 02:00 बजे के लिए `0 2 * * *`)।
- Start / end window चुनें (वैकल्पिक)। OS scheduler job को केवल इस window के अंदर arm करता है।
- Task-specific arguments भरें (target connection, output directory, --collection filter, आदि)। `{date}` placeholder execution time पर expand होता है ताकि हर run एक uniquely-named artifact लिखे।
- Register पर क्लिक करें। NoSqlStudio OS-native entry लिखता है: Windows पर `schtasks.exe` का उपयोग करता है, macOS पर `~/Library/LaunchAgents/...plist` लिखता है, Linux पर `~/.config/cron.d/` + एक systemd timer (यदि उपलब्ध हो) लिखता है।
`nbcli` helper
OS scheduler tasks `nbcli` (NoSqlStudio CLI) call करती हैं, एक bundled binary जो UI की आवश्यकता के बिना command line से आपका job चलाता है। यह base64-encoded JSON के माध्यम से अपने arguments पढ़ता है, spawn के माध्यम से execute करता है, सीधे `userData/AuditLog/audit.jsonl` में अपनी audit lines लिखता है, और `userData/OsTaskSchedules/nbcli.log` के तहत अपना log rotate करता है।
Audit
हर OS task `os-task.start` और `os-task.finish` audit lines emit करता है (success / failure outcome)। In-app log workspace इन्हें DataMask / DB Copy lines के साथ दिखाता है — forensic investigation के लिए वही source।
सीमाएँ (v1)
- OS scheduler को आपके PATH में `nbcli` चाहिए (installer wrapper को app exe dir में drop करता है; macOS `.app` bundles को symlink की आवश्यकता हो सकती है)। Mongo tools (`mongodump`, `mongoexport`) भी PATH में या `NBCLI_MONGO_TOOLS_DIR` में होने चाहिए।
- Cross-machine sync — schedules local हैं। यदि आपको fleet-wide consistency चाहिए तो templates push करने के लिए एक config-management tool (Chef / Ansible / SCCM) का उपयोग करें।
- Failure notifications वही Alerting webhooks का उपयोग करती हैं। यदि आपके पास कोई webhooks configured नहीं हैं, failures audit log में silently गिरती हैं।