Предложения по подключаемой структуре задач в Django - PullRequest
0 голосов
/ 17 мая 2010

Я занимаюсь разработкой веб-сайта, целью которого является создание графического интерфейса для нескольких алгоритмов обработки изображений (называемых «задачами»).

На данный момент завершен только один из этих алгоритмов, но естьбольше впереди (который будет иметь похожий, но не совсем тот же рабочий процесс)

По сути, алгоритм работает следующим образом (не то, чтобы это имело большое значение, но просто для ясности): 1)Введите некоторые параметры и входное изображение. 2) Запустите алгоритм, часть первая - запускается алгоритм-- 3) просмотрите промежуточный результат 4) отредактируйте параметры, если это необходимо, и перейдите к 2. 5) Запустите алгоритм, часть вторая - алгоритм запускается--6) просмотреть результат 7) скорректировать некоторые промежуточные результаты, если необходимо, и перейти к 5 8) все выполнено

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

Таким образом, простой способ реализовать это - создать отдельное приложение django для каждого алгоритма.

Однако я хотел бы иметь возможность просматривать отсортированный список (по времени выполнения) выполненных задач, и для каждой из этих задач отображать сводку (имя, описание, время начала, эскиз).

Кто-нибудь может дать мне несколько советов, как мне это реализовать?Я хотел бы сделать это как можно более простым, чтобы можно было легко подключить дополнительную задачу.

1 Ответ

0 голосов
/ 17 мая 2010

Я бы сделал приложение с очень абстрактным определением модели Task. Модель Task может содержать свойства для:

  • входные аргументы,
  • функция для запуска,
  • время, когда задание было отправлено,
  • время, когда задача фактически выполнялась, и
  • результат (который будет чем-то вроде синглтона Task.NotFinished до конца).

Вы можете использовать twisted для запуска задач, потому что:

  • twisted имеет хорошо спроектированную и проверенную реализацию асинхронных задач; и
  • Вы можете запускать задачи на других процессорах или машинах.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...