• Почему фоновый процесс запускает несколько фоновых процессов?

    @m4troskun Автор вопроса
    Сергей Горностаев Добрый день!
    Некоторое время назад вы отвечали на данный вопрос, но комментарии исчезли. Могли бы вы помочь ещё раз с этим же вопросом?
  • Почему фоновый процесс запускает несколько фоновых процессов?

    @m4troskun Автор вопроса
    Mykola, а можно обойтись без crontab? У меня возникали проблемы при его установке на дебаг- и продакшн серверах.
    Также, если я правильно понял, задачи при таком подходе будут работать независимо друг от друга - то есть при создании парламента будут запускаться выборы (первая функция) с аргументом "раз в неделю", и тут, же, сразу же - вторая функция, которая подводит итоги с интервалом в неделю и сутки.
    Вообщем, средствами Celery эту задачу решить можно корректно? В идеале - просто избавиться от появления нескольких копий фоновой функции 1, создаваемых функцией завершения выборов в конце своей работы.
  • Почему фоновый процесс запускает несколько фоновых процессов?

    @m4troskun Автор вопроса
    Mykola, прошу прощения, можете помочь с нахождением примеров реализации? Также, если я правильно понял документацию, планировщик задач должен быть один:
    You have to ensure only a single scheduler is running for a schedule at a time, otherwise you’d end up with duplicate tasks. Using a centralized approach means the schedule doesn’t have to be synchronized, and the service can operate without using locks.

    это вписывается в мою концепцию того, что парламентов может быть несколько сотен, и для каждого нужно создавать такие задачи?
    Также, а что если планировать задачи на выполнение не "через какое-то время", а задать конкретную дату начала?
  • Почему фоновый процесс запускает несколько фоновых процессов?

    @m4troskun Автор вопроса
    Mykola, без Селери там уже никак.
    Сама задача состоит в том, чтобы проводить "выборы в парламенте".
    Есть две функции:
    Первая функция "объявляет" выборы созданием экземпляра класса "выборы", планирует вторую задачу через сутки и завершает работу.
    Вторая функция изменяет свойство "выборов" на "завершено", выполняет подсчет голосов, накопленных в ходе этих выборов, раздаёт "места в парламенте" согласно голосам, и планирует запуск первой функции через неделю.
    То есть должен быть реализован цикл из этих двух функций для каждого "парламента". Первый раз первая функция стартует с созданием нового "парламента".
    Кстати, подумал сейчас о том, что было бы неплохо завершать эти процессы для удалённого парламента - чтобы фоновый процесс не вылетал с ошибкой.