Set up a scheduled job?

后端 未结 24 2483
爱一瞬间的悲伤
爱一瞬间的悲伤 2020-11-22 01:13

I\'ve been working on a web app using Django, and I\'m curious if there is a way to schedule a job to run periodically.

Basically I just want to run through the dat

相关标签:
24条回答
  • 2020-11-22 01:55

    after the part of code,I can write anything just like my views.py :)

    #######################################
    import os,sys
    sys.path.append('/home/administrator/development/store')
    os.environ['DJANGO_SETTINGS_MODULE']='store.settings'
    from django.core.management impor setup_environ
    from store import settings
    setup_environ(settings)
    #######################################
    

    from http://www.cotellese.net/2007/09/27/running-external-scripts-against-django-models/

    0 讨论(0)
  • 2020-11-22 01:57

    Interesting new pluggable Django app: django-chronograph

    You only have to add one cron entry which acts as a timer, and you have a very nice Django admin interface into the scripts to run.

    0 讨论(0)
  • 2020-11-22 01:57

    RabbitMQ and Celery have more features and task handling capabilities than Cron. If task failure isn't an issue, and you think you will handle broken tasks in the next call, then Cron is sufficient.

    Celery & AMQP will let you handle the broken task, and it will get executed again by another worker (Celery workers listen for the next task to work on), until the task's max_retries attribute is reached. You can even invoke tasks on failure, like logging the failure, or sending an email to the admin once the max_retries has been reached.

    And you can distribute Celery and AMQP servers when you need to scale your application.

    0 讨论(0)
  • 2020-11-22 02:00

    We've open-sourced what I think is a structured app. that Brian's solution above alludes too. We would love any / all feedback!

    https://github.com/tivix/django-cron

    It comes with one management command:

    ./manage.py runcrons
    

    That does the job. Each cron is modeled as a class (so its all OO) and each cron runs at a different frequency and we make sure the same cron type doesn't run in parallel (in case crons themselves take longer time to run than their frequency!)

    0 讨论(0)
  • 2020-11-22 02:00

    I am not sure will this be useful for anyone, since I had to provide other users of the system to schedule the jobs, without giving them access to the actual server(windows) Task Scheduler, I created this reusable app.

    Please note users have access to one shared folder on server where they can create required command/task/.bat file. This task then can be scheduled using this app.

    App name is Django_Windows_Scheduler

    ScreenShot:

    0 讨论(0)
  • 2020-11-22 02:00

    If you want something more reliable than Celery, try TaskHawk which is built on top of AWS SQS/SNS.

    Refer: http://taskhawk.readthedocs.io

    0 讨论(0)
提交回复
热议问题