"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > Django में एक सरल शेड्यूलर कैसे बनाएं

Django में एक सरल शेड्यूलर कैसे बनाएं

2024-11-08 को प्रकाशित
ब्राउज़ करें:165

How to create a simple scheduler in Django

यदि आपको कुछ क्लीनअप करने के लिए हर X मिनट/सेकंड आदि में एक फ़ंक्शन चलाने की आवश्यकता है, तो कुछ ऑपरेशन ट्रिगर करें, आप थ्रेडिंग मॉड्यूल और django कस्टम cli की मदद से एक सरल शेड्यूलर कर सकते हैं आदेश.

मान लें कि मैं बाहरी एपीआई पर कुछ पोस्ट करने के लिए हर 5 सेकंड में एक फ़ंक्शन शुरू करना चाहता हूं।

अपने django ऐप में प्रबंधन नाम का एक फ़ोल्डर/पैकेज बनाएं, उस फ़ोल्डर के अंदर कमांड्स नाम का एक और फ़ोल्डर बनाएं। कमांड फ़ोल्डर में runposter.py नाम का एक मॉड्यूल बनाएं। अंत में आपके पास कुछ इस तरह की संरचना होगी yourapp/management/commands/runposter.py.

इस कोड में हम एक थ्रेड का उपयोग करते हैं जो थोड़ी देर तक लूप चलाता है जब तक कि यह हर 5 सेकंड में बंद न हो जाए। प्रिंट("पोस्टिंग") को उस फ़ंक्शन/लॉजिक से बदलें जिसे आप चलाना चाहते हैं।

# runposter.py
import time
from threading import Thread, Event
from django.conf import settings
from django.core.management.base import BaseCommand


stop_event = Event()


def my_job():
    while not stop_event.is_set():
        try:
            print("posting")
            time.sleep(5)
        except KeyboardInterrupt:
            break


class Command(BaseCommand):
    help = "Run Poster."

    def handle(self, *args, **options):

        poster = Thread(target=my_job)

        try:
            print("Starting poster...")
            poster.start()
            while poster.is_alive():
                poster.join(timeout=1)
        except KeyboardInterrupt:
            print("Stopping poster...")
            stop_event.set()
            poster.join()
            print("Poster shut down successfully!")

अच्छा है, अब एक और टर्मिनल विंडो खोलें और पायथन मैनेज.पी रनपोस्टर चलाएं। जैसा कि आप देख सकते हैं कमांड रनपोस्टर हमारे द्वारा दिए गए मॉड्यूल नाम से बनाया गया था।

बेशक, कुछ अधिक जटिल चीज़ों के लिए मैं आरक्यू-शेड्यूलर या सेलेरी आवधिक कार्यों या डीजेंगो-क्यू का उपयोग करने की सलाह देता हूं।

लेकिन, साधारण मामलों के लिए यह काफी अच्छा होना चाहिए।

विज्ञप्ति वक्तव्य इस लेख को पुन: प्रस्तुत किया गया है: https://dev.to/climentea/how-to-create-a-simple-scheduler-in-django-1o54?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3