Фоновые процессы веб-приложения, вопрос о дизайне новичка

Если вы хотите удалить любой набор данных, вы должны установить notifyItemRemoved с позицией данных.

Пример:

mDataset.remove(position); // remove your data
notifyItemRemoved(position); // notify that your data is removed
notifyItemRangeChanged(position, mDataSet.size()); // you can use if range is changed 
9
задан Roee Adler 10 May 2009 в 02:39
поделиться

4 ответа

На этот счет есть две точки зрения (по крайней мере).

  1. Поместите работу в очередь и попросите что-то еще за пределами вашего веб-стека обработать ее.

  2. Поместите работу в очередь, и что-то еще в вашем веб-стеке обработает ее.

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

Обычно я работаю с номером 1, где у меня есть выделенная служба Windows, которая заботится об этих вещах. Вы также можете сделать это с помощью заданий SQL или чего-то подобного.

Преимущество пункта 2 состоит в том, что вы можете легко хранить весь свой код в одном месте - на веб-уровне. Вам все равно понадобится что-то, что запускает выполнение (например, загрузка веб-страницы, которая обрабатывает рабочие единицы с достаточно большим таймаутом),

7
ответ дан 4 December 2019 в 21:11
поделиться

В общем, я бы посмотрел на запуск фоновых процессов на другом сервере, особенно если ваш веб-сервер имеет какую-либо нагрузку.

1
ответ дан 4 December 2019 в 21:11
поделиться

Начиная с:

1) Это обычная проблема,

2) Вы новичок в своей платформе

- Я предлагаю вам поискать решение в дополнительных библиотеках для вашей платформы. справиться с задачей. Помимо постановки в очередь и обработки заданий, вы также захотите учесть:

1) связь статуса между исполнителем и веб-стеком. Это позволит веб-страницам, показывающим процент выполнения задания, гарантировать человеку, что задание выполняется, и т. Д.

2) Как гарантировать, что рабочий процесс не умирает.

3) Если задание содержит ошибку, будет ли рабочий процесс периодически повторять ее автоматически? Будете ли вы или операторы уведомлены о сбое задания?

4) Могут ли быть добавлены дополнительные рабочие для достижения параллелизма по мере увеличения количества рабочих мест? Или, что еще лучше, можно добавить рабочих на другие серверы?

Если вы не можете найти хорошее решение в Django / Python, вы также можете подумать о переносе решения с другой платформы на свою. Я использую delayed_job для Ruby on Rails. Рабочий процесс управляется runit.

С уважением,

Ларри

2
ответ дан 4 December 2019 в 21:11
поделиться

Запуск длительных процессов в Django: http://iraniweb.com/blog/?p=56

0
ответ дан 4 December 2019 в 21:11
поделиться
Другие вопросы по тегам:

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