LINUX.ORG.RU

Параллельный процесс

 ,


0

1

Есть Django (не старой версии), требуется выполнять некоторые периодические действия, например, раз в минуту (или даже раз в 15 секунд), кое что дергать, проверять изменилось ли что-то.

Как это правильно делать в Django? Не запуская всякие костыли и параллельные процессы, а так чтобы было максимально некостыльно, в духе фреймворка?

В чем вопрос - как называется этот механизм? Воркеры?

Нашел такую штуку: https://github.com/geekforbrains/django-workers - с точки зрения разработки сайтов это штатный механизм, не поделка? На нее стоит завязываться?

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

Я использовал django-background-tasks для этой цели, но тот модуль тоже подойдёт. Но только для простейшего случая.

Если у тебя простые периодические таски, которые не придётся запускать вручную со стороны пользователя, то можно обойтись простейшим кроном.

Если напротив, у тебя много разных фоновых тасков и нужен мощный API для управления ими, советую посмотреть в сторону celery и её аналогов.

eternal_sorrow ★★★★★
()

Насчёт параллельных процессов, без них тебе не обойтись. В том же модуле django-workers, на который ты дал ссылку, нужно запустить фоновой процесс manage.py runworkers чтобы воркеры работали.

eternal_sorrow ★★★★★
()
Ответ на: комментарий от eternal_sorrow

Понятно, спасибирую. Там по моей ссылке советуют тоже celery для больших сложных фоновых конфигураций.

P.S. Сервис, один из тех с которыми буду работать, поддерживает web hooks, я это пробовал - работает, но фоновый таск всё же предпочтительней.

I-Love-Microsoft ★★★★★
() автор топика

может быть celery ?

ggrn ★★★★★
()

Используй celery. У него отличная связка с джангой

Aswed ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.