Модель одновременного доступа к базе данных для веб-приложений - PullRequest
2 голосов
/ 09 февраля 2011

Я пытаюсь написать веб-приложение Spring на сервере Weblogic, которое выполняет несколько независимых выборок базы данных (т. Е. Их можно безопасно вызывать одновременно), выполнение одного из которых занимает 15 минут.

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

Какой хороший способ обойти эту проблему? Есть ли библиотека Spring, которая может помочь, или я могу создать потоки демонов для этой работы?

РЕДАКТИРОВАТЬ: Это должно быть сделано на прикладном уровне (бизнес-требования) и электронное письмо будет отправлено веб-приложением.

Ответы [ 3 ]

1 голос
/ 09 февраля 2011
  1. Вы уверены, что делаете все оптимально?15 минут - это действительно много времени, если у вас нет нескольких десятков строк в десятках таблиц и вам не нужен огромный набор соединений ... это ваш главный приоритет - почему это занимает так много времени?

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

  3. Если вам нужно запустить этот процесс из веб-приложения, вам нужно сделать это асинхронно.Вы можете использовать JMS или просто иметь таблицу, в которую вы вводите новый запрос на работу, с процессом-демоном, который ищет новые работы каждый X период времени.Обжигание фоновых потоков возможно, но оно подвержено ошибкам и не стоит осложнений, тем более что у вас есть другие допустимые опции, более простые.

0 голосов
/ 10 февраля 2011

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

0 голосов
/ 09 февраля 2011

Если вы спрашиваете о поддержке Spring для длительных, возможно, асинхронных задач, у вас есть выбор между Spring JMS support и Spring Batch .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...