Cron सेवा
अनुप्रयोग निर्धारित कार्यों को संभालने के लिए एक अलग cron सेवा शामिल करता है:
विकास मोड में cron सेवा प्रारंभ करें
pnpm dev पहले से ही Next.js के साथ cron सेवा प्रारंभ करता है। केवल cron चलाने के लिए (उदाहरण के लिए दूसरे टर्मिनल में):
pnpm cron:dev
उत्पादन मोड में cron सेवा प्रारंभ करें
pnpm cron:start
स्थानीय रूप से cron सेवा प्रारंभ करें (परीक्षण के लिए)
pnpm cron:start-local
cron सेवा एक अलग पोर्ट पर चलती है (विकास में 8667, उत्पादन में 9667) और अतिदेय बैकअप सूचनाओं जैसे निर्धारित कार्यों को संभालती है। पोर्ट को CRON_PORT वातावरण चर का उपयोग करके कॉन्फ़िगर किया जा सकता है।
cron सेवा में शामिल हैं:
- स्वास्थ्य जांच एंडपॉइंट:
/health- सेवा स्थिति और सक्रिय कार्य लौटाता है - मैनुअल कार्य ट्रिगरिंग:
POST /trigger/:taskName- निर्धारित कार्य मैनुअल रूप से निष्पादित करें।daily-summary-dispatchकार्य को इस मार्ग पर अस्वीकार कर दिया जाता है; सेटिंग्स → दैनिक सारांश अभी सारांश भेजें का उपयोग करें - कार्य प्रबंधन:
POST /start/:taskNameऔरPOST /stop/:taskName- व्यक्तिगत कार्यों को नियंत्रित करें - कॉन्फ़िगरेशन पुनः लोड:
POST /reload-config- डेटाबेस से कॉन्फ़िगरेशन पुनः लोड करें - स्वचालित पुनरारंभ: यदि यह क्रैश हो जाता है तो सेवा स्वचालित रूप से पुनरारंभ हो जाती है (Docker डिप्लॉयमेंट में
docker-entrypoint.shद्वारा प्रबंधित) - वॉच मोड: विकास मोड में कोड परिवर्तनों पर स्वचालित पुनरारंभ के लिए फ़ाइल देखना शामिल है
- अतिदेय बैकअप निगरानी: अतिदेय बैकअप की स्वचालित जांच और सूचना (डिफ़ॉल्ट रूप से हर 5 मिनट में चलता है)
- दैनिक सारांश प्रेषण: संग्रहीत दैनिक सारांश UTC समय (
minute hour * * *) पर एक बार प्रतिदिन वर्तमान-स्थिति स्नैपशॉट भेजता है। नए इंस्टॉल के लिए डिफ़ॉल्ट 01:00 UTC है। समय भेजना बदलना इस अनुसूची को पुनः लोड करता है। कार्य तब भेजता है जब दैनिक सारांश सक्षम होता है और घड़ी को फिर से जांच नहीं करता है। - ऑडिट लॉग साफ़ करना: पुरानी ऑडिट लॉग प्रविष्टियों की स्वचालित सफाई (UTC में रात 2 बजे प्रतिदिन चलता है)
- डेटाबेस कॉम्पैक्ट: साप्ताहिक रविवार 04:00 UTC। बैकअप पंक्तियाँ हटाता है जिनका सर्वर अब मौजूद नहीं है, बचे बैकअप के बिना सर्वर पंक्तियाँ, अप्रयुक्त
backup_settingsऔरoverdue_notificationsकुंजियाँ, पुराने दैनिक सारांश वितरण पंक्तियाँ काटता है, और SQLiteVACUUMचलाता है - Duplicati संस्करण ताज़ा करना: GitHub रिलीज़ से कैश किए गए नवीनतम Duplicati चैनल संस्करण अपडेट करता है। डिफ़ॉल्ट प्रतिदिन 3 बजे UTC है; व्यवस्थापक सेटिंग्स → Duplicati संस्करण में अंतराल और प्रारंभ समय बदल सकते हैं।
- लचीली अनुसूचना: विभिन्न कार्यों के लिए कॉन्फ़िगर करने योग्य cron एक्सप्रेशन
- डेटाबेस एकीकरण: मुख्य अनुप्रयोग के साथ एक ही SQLite डेटाबेस साझा करता है
- RESTful API: सेवा प्रबंधन और निगरानी के लिए पूर्ण API
- स्थानीय बाइंड: डिफ़ॉल्ट रूप से
127.0.0.1पर सुनता है (CRON_BIND_HOST)। गैर-लूपबैक बाइंड कोCRON_SERVICE_SECRETकी आवश्यकता होती है