Джанго - настроить запланированное задание?

Если вы не работаете выше, вы можете проверить, есть ли у вас какие-либо пакеты в разделе «Предпочтение»> «Редактор»> «Стиль кода»> «Java»> «Импорт»> «Пакеты для импорта» с «*»

478
задан WhiteKnight 3 May 2012 в 18:35
поделиться

9 ответов

Одно решение, которое я использовал, состоит в том, чтобы сделать это:

1) Создают пользовательская команда управления, например,

python manage.py my_cool_command

2) Использование cron (на Linux) или at (в Windows) для выполнения моей команды в необходимые времена.

Это - простое решение, которое не требует установки тяжелого стека AMQP. Однако существуют хорошие преимущества для использования чего-то как Сельдерей, упомянутый в других ответах. В частности, с Сельдереем хорошо не должным быть распространить Вашу прикладную логику в crontab файлы. Однако решение для крона работает вполне приятно на малое и среднее приложение и где Вы не хотите много внешних зависимостей.

РЕДАКТИРОВАНИЕ:

В более поздней версии окон эти at команда удерживается от использования для Windows 8, Сервер 2012 и выше. Можно использовать schtasks.exe для того же использования.

**** ОБНОВЛЯЮТ **** Это новое ссылка из django документа для записи пользовательской команды

управления
339
ответ дан Aniruddh Agarwal 4 May 2012 в 05:35
поделиться

Я не уверен, что это будет кому-нибудь полезно, так как мне пришлось предоставлять другим пользователям системы для планирования заданий, не предоставляя им доступ к фактическому планировщику задач сервера (windows), я создал это повторно используемое приложение.

Обратите внимание, что пользователи имеют доступ к одной общей папке на сервере, где они могут создавать необходимые команды / task / .bat. Эта задача может быть запланирована с помощью этого приложения.

Имя приложения - Django_Windows_Scheduler

Снимок экрана: enter image description here

1
ответ дан just10minutes 3 May 2012 в 18:35
поделиться

Поместите следующее в начало вашего файла cron.py:

#!/usr/bin/python
import os, sys
sys.path.append('/path/to/') # the parent directory of the project
sys.path.append('/path/to/project') # these lines only needed if not on path
os.environ['DJANGO_SETTINGS_MODULE'] = 'myproj.settings'

# imports and code below
6
ответ дан Matt McCormick 3 May 2012 в 18:35
поделиться

Взгляд на Крон Django Poor Man, который является приложением Django, которое использует спам-роботы, роботы индексирования в поисковых системах и одинаково выполнять запланированные задачи приблизительно в равных интервалах

, Видит: http://code.google.com/p/django-poormanscron/

15
ответ дан user41767 4 May 2012 в 05:35
поделиться

Я лично использую крон, но эти части Планирования Заданий django-расширения интересные взгляды.

8
ответ дан chhantyal 4 May 2012 в 05:35
поделиться

При использовании стандартного POSIX ОС Вы используете крон .

при использовании Windows Вы используете по телефону .

Запись команда управления Django к

  1. Фигура, какая платформа они идут.

  2. Или выполните соответствующую команду "AT" для своих пользователей, или обновляют crontab для Ваших пользователей.

36
ответ дан xuhdev 4 May 2012 в 05:35
поделиться

Интересное новое сменное приложение Django: django-хронограф

только необходимо добавить одну запись крона, которая действует как таймер, и у Вас есть очень хороший администраторский интерфейс Django в сценарии для выполнения.

22
ответ дан Austin Adams 4 May 2012 в 05:35
поделиться

Celery - это распределенная очередь задач, построенная на AMQP (RabbitMQ). Он также обрабатывает периодические задачи в стиле cron (см. периодические задачи ). В зависимости от вашего приложения, на него стоит взглянуть.

Celery довольно легко настроить с помощью django ( docs ), и периодические задачи фактически пропускают пропущенные задачи в случае простоя. В Celery также есть встроенные механизмы повтора в случае сбоя задачи.

143
ответ дан 22 November 2019 в 22:43
поделиться

Django APScheduler для Заданий Планировщика. Усовершенствованный Планировщик Python (APScheduler) является библиотекой Python, которая позволяет Вам запланировать свой код Python, который будет выполнен позже, или только однажды или периодически. Можно добавить новые задания или удалить старые на лету как Вам нравится.

примечание: я - автор этой библиотеки

функция файла Представления APScheduler

pip install apscheduler

Установки для вызова

имя файла: scheduler_jobs.py

def FirstCronTest():
    print("")
    print("I am executed..!")

, Настраивающий планировщик

, делает execute.py файл и добавляет ниже кодов

from apscheduler.schedulers.background import BackgroundScheduler
scheduler = BackgroundScheduler()

Ваши записанные функции Здесь, функции планировщика записаны в Ссылке scheduler_jobs

import scheduler_jobs 

scheduler.add_job(scheduler_jobs.FirstCronTest, 'interval', seconds=10)
scheduler.start()

Файл для Выполнения

Теперь, добавляют ниже строки в нижней части файла

import execute
2
ответ дан 22 November 2019 в 22:43
поделиться
Другие вопросы по тегам:

Похожие вопросы: