powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Индикация работы метода класса
81 сообщений из 81, показаны все 4 страниц
Индикация работы метода класса
    #40109281
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Есть следующая ситуация: оператор нажимает на кнопку на странице веб-сайта

Код: html
1.
2.
3.
4.
5.
6.
<div>
    <form action="getmail" class="ui-form" method="post">
        <p><input type="submit" value="Загрузить письма с почтового сервиса"></p>
        <p align="left">${connection}</p>
    </form>
</div>



идет вызов сервлета

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
// get mails from imap-server and write mails to hdd

@WebServlet(urlPatterns = {"/getmail"})
public class GetMail extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) {
        try {
		      ..... много всякого
            int connct = MailImap.getMail(imapserver, login, pass, fullPathToFile, pathToRootDir, loadmails, delmails);
			...... 
			// тут нужен индикатор загрузки писем
            request.setAttribute("connection", "Контроль подключения к серверу: " + connct + " Письмо");
            request.getRequestDispatcher("WEB-INF/operator/operator.jsp").forward(request, response);

        } catch (IOException exc) {
        } catch (ServletException exc) {
    }
}
}



который вызывает метод для загрузки писем с сервера и записи писем в формате мыло.емл на ЖД

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
// receive mails by IMAP protocol + SSL, all works, but google

public class MailImap {

    public static int getMail(String imapHost, String login, String password, String fullPathToFile, String pathToRootDir,
                              boolean recMail, boolean delMail) {
        try {
            /* create properties field */
                 ......
            /* create the IMAP store object and connect with the imap server */
                .......
            /* create the folder object and open it */
			.........
            /* retrieve the messages from the folder in array*/
            mailsCnt = messages.length;

            if (mailsCnt > 0) {

                if (recMail) {
                    /* allow recieve mails */
                    for (Message message : messages) {
                        /*write mails to dir */
                        SaveMailToDir.saveFile(fullPathToFile, fileName, pathToRootDir, fullMail);
                    }
                }
            }
            /* delete ALL mails */
            /* set FLAGs to delete if delMail == true */
            /* close the store and folder objects */
            return mailsCnt;

        } catch (NoSuchProviderException exc) {
        } catch (AuthenticationFailedException exc) {
        } catch (MessagingException exc) {
        } catch (IOException exc) {
        } catch (Exception exc) {
        }
        return -1;
    }
}



записи писем в формате мыло.емл на ЖД

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
// write mails to hdd

public class SaveMailToDir {

    public static void saveFile(String fullPathToFile, String filename, String pathToRootDir, InputStream input) {
        try {

        } catch (IOException exc) {
        }
    }
}



Все работает как предначертано

НО! загрузка писем с сервиса занимает от 5 до 500 сек (зависит много от чего)

вопросы:
- можно ли сделать индикацию загрузки писем на веб-странице, просто в виде мигающей строки "Идет загрузка. Ждать!"
- если ДА то как

Заранее спасибо за ответы по ЗАДАННЫМ вопросам
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109305
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

это вопрос не сюда - это https://www.sql.ru/forum/html-javascript-css
т.е. к фронту, надеюсь в команде такой есть...
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109309
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,
типа такого
Код: html
1.
2.
3.
4.
5.
6.
7.
 <div>
    <form action="getmail" class="ui-form" method="post">
        <input type="submit" value="" style="display:none;" id=""yyy"> 
<button onclick="xxx();">Загрузить письма с почтового сервиса</button>
        <p align="left">${connection}</p>
    </form>
</div>


....

Код: javascript
1.
2.
3.
4.
function xxx(){
отображать гифку
document.getElementByID("yyy").click();
}
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109310
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,
даже если б ты использовал websocket то это
Код: java
1.
// тут нужен индикатор загрузки писем


нужно было бы в другом месте, а именно тут

Код: java
1.
2.
3.
4.
5.
                    for (Message message : messages) {
                        /*write mails to dir */
// тут нужен индикатор загрузки писем
                        SaveMailToDir.saveFile(fullPathToFile, fileName, pathToRootDir, fullMail);
                    }


а так как у тебя ajax - то ответ с сервера ты можешь послать только один на один запрос к серверу.
т.е. только с результатом получения всей почты
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109344
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вадяа так как у тебя ajax - то ответ с сервера ты можешь послать только один на один запрос к серверу.
т.е. только с результатом получения всей почты

тоесть по простому только жаваскрипт, который будет мигать картинку(или строку) с нажатием кнопки и отключаться как то там еще потом разберусь?

в вебсокеты не лезть

Спасибо.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109345
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair
НО! загрузка писем с сервиса занимает от 5 до 500 сек (зависит много от чего)

То есть разница в 100 !!! раз и автоматизации не поддается. Наверно зависит от магнитных бурь которые пока не могут предсказать.
Pcrepair
"Идет загрузка. Ждать!"

а другим делами нельзя занимать? ПРИКАЗ тупо ждать от 5 до 500 сек?
Итого ТЗ
- предсказать время получения почты если это возможно
- оформить проверку почты в виде урл на рабочем столе юзверя. Самим юзверем кликая, когда освободится!
- в личном кабинете сделать выбор (извещать СМС, мыло, ....)
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109347
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair
тоесть по простому только жаваскрипт, который будет мигать картинку(или строку) с нажатием кнопки и отключаться как то там еще потом разберусь?
да
а отключать - когда придет ответ от сервера - тогда и отключить гифку
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109349
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair
в вебсокеты не лезть

Pcrepair
НО! загрузка писем с сервиса занимает от 5 до 500 сек (зависит много от чего)
вот тут с точки зрения юзера - если гифка крутится больше 15 сек - возникает мысль, а не подвисла ли система...
даже если отображать часики -то все знают , что это только браузер работает, а что там на сервере - хз.

я понимаю, что ws - это страшно, но тогда можно было бы индицировать процесс именно с сервера - т.е. заголовки писем или ещё что.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109415
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поскольку есть messages.length - то можно наверное разработать индикатор прогресса.
Да допустим письма разные и могут иметь аттачи - но всё равно это всяко информативнее
чем крутить спиннеры.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109426
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Поскольку есть messages.length - то можно наверное разработать индикатор прогресса.
Да допустим письма разные и могут иметь аттачи - но всё равно это всяко информативнее
чем крутить спиннеры.
проблема не в этом, проблема в том как отображать происходящее а сервере в браузере.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109427
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Оно на сервере.
А клиента не интересуют трудности бэка.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109452
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
mayton
Поскольку есть messages.length - то можно наверное разработать индикатор прогресса.
Да допустим письма разные и могут иметь аттачи - но всё равно это всяко информативнее
чем крутить спиннеры.
проблема не в этом, проблема в том как отображать происходящее а сервере в браузере.

Ты-же фул-стекер. Создай веб-сокет. Транслируй прогресс. Мне ли тебя учить?
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109453
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ты-же фул-стекер. Создай веб-сокет. Транслируй прогресс. Мне ли тебя учить?
мне то не проблема, вот только для тс
Pcrepair
в вебсокеты не лезть

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

я понимаю, что ws - это страшно, но тогда можно было бы индицировать процесс именно с сервера - т.е. заголовки писем или ещё что.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109454
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
-
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109473
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну была еще более жлобская технология. Аякс-шмаякс. Вроде тоже может прогресс показать. Не?
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109476
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну была еще более жлобская технология. Аякс-шмаякс. Вроде тоже может прогресс показать. Не?
там событие отправки и событие пришел ответ
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109477
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Ну была еще более жлобская технология. Аякс-шмаякс. Вроде тоже может прогресс показать. Не?
сомет? Long-Polling?
велосипеды...
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109489
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... автор не хочет анимацию типа спиннера. И не хочет веб-сокеты.

Остаётся - просто активный JS который чего-то там будет дергать. Периодически. Не?

P.S. Пятница - прекрасна. Вместо того чтобы идти в пивбар - мы сидим в сорцах.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109490
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
дергать периодически ajax может только в сторону сервера. А автор с глупой постановкой хочет в обратном направлении.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109492
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно сделать два эндпойнта. На одном запускать проверку почты в отдельном потоке и возвращать клиенту идентификатор задачи. На втором, по идентификатору задачи возвращать прогресс. На клиенте опрашивать второй эндпойнт и отображать прогресс пока не закончится или не случится таймаут. Все тоже самое можно сделать и вебсокетами. Вообще клиентская часть в обоих случаях тривиальная. Основная сложность у топикстартера будет разобраться с многопоточкой на сервере. Это просто, но если никогда не делал, то нужно будет внимательно почитать букварь и сделать.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109494
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer,
и потоки не нужны.
Контейнер сам потоки делает.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109496
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Можно сделать два эндпойнта.
конечно можно, но если рассматривать систему с множеством клиентов, то дергать сервер - не есть хорошо.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109497
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer,
и потоки не нужны.
Контейнер сам потоки делает.


Контейнер делает потоки для обработки запроса. А тут нужно запустить долгоиграющую задачу и сразу вернуть результат клиенту.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109498
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
сокеты? ))))))))))))))))))))))))
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109499
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
и сразу вернуть результат клиенту.

HTTP.OK = 200 результат?
Ты подробнее пиши.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109500
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
fixxer
Можно сделать два эндпойнта.
конечно можно, но если рассматривать систему с множеством клиентов, то дергать сервер - не есть хорошо.


Сервер на то и нужен чтобы его дергали. Вопрос в поддерживаемой нагрузке. Программная инженерия это всегда компромис между скоростью работы, стоимостью поддержки, простотой решения и ресурсами.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109501
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
сокеты? ))))))))))))))))))))))))
ну я предложил , а тс отказался
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109502
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer
и сразу вернуть результат клиенту.

HTTP.OK = 200 результат?
Ты подробнее пиши.


Я пишу, только ты не читаешь.

возвращать клиенту идентификатор задачи
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109503
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Вопрос в поддерживаемой нагрузке.
вот поэтому и не есть хорошо.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109504
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
вадя
пропущено...
конечно можно, но если рассматривать систему с множеством клиентов, то дергать сервер - не есть хорошо.


Сервер на то и нужен чтобы его дергали. Вопрос в поддерживаемой нагрузке. Программная инженерия это всегда компромис между скоростью работы, стоимостью поддержки, простотой решения и ресурсами.

+1
Исходя из этого, опрашивай БД или сессионный объект в сессии на процент выполнения.
Безо всяких потоков.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109505
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Я пишу, только ты не читаешь.
возвращать клиенту идентификатор задачи

да ТС не говорил что запускает 5 задач сразу. У него тогда 5 прогрессбаров будет.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109508
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя
fixxer
Вопрос в поддерживаемой нагрузке.
вот поэтому и не есть хорошо.


Топикстартер нам не дал никаких вводных по нагрузке, нет смысла преждевременно оптимизировать. Опять же, вебсокеты хорошее решение, но если топикстартер не владеет ими, то это плюс одна технология на изучение. А тут можно начать с работающего решения и отрефакторить на вебсокеты.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109510
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
да ТС не говорил что запускает 5 задач сразу. У него тогда 5 прогрессбаров будет.
чтобы запустить задачу по обработке мыл - надо один сервлет, чтобы запускать запросы по состоянию обработчика мыл - второй сервлет. чтоб из второго получать состояние первого - потоки
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109511
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer
Я пишу, только ты не читаешь.
пропущено...

да ТС не говорил что запускает 5 задач сразу. У него тогда 5 прогрессбаров будет.


Я открыл две вкладки и в каждой нажал обновить почту. (Не спрашивай зачем, такой уж я экцентричный персонаж) Вот тебе уже две задачи. И для каждой свой прогресбар. Петро, ты не торопись отвечать, подумай сначала. Также еще над тем когда @WebMethod тебе вернет результат, если ты не выделишь задачу в отдельный поток.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109512
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Топикстартер нам не дал никаких вводных по нагрузке, нет смысла преждевременно оптимизировать.
это верно, но мы рассматриваем без применения к данному случаю. в общем.
fixxer
Опять же, вебсокеты хорошее решение, но если топикстартер не владеет ими, то это плюс одна технология на изучение. А тут можно начать с работающего решения и отрефакторить на вебсокеты.
а это уже дело вкуса руководства.
я сразу ориентируюсь на ws. поэтому таких проблем не возникает.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109515
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто я эту задачу уже решал в 2009. Только была не почта, а генерация отчета, не ajax, а gwt, не вебсокеты, а лонг-пол/комет.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109516
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Не спрашивай зачем, такой уж я экцентричный персонаж)

я и говорю - очень эксцентричный ты и автор))))
Можно порассуждать над идиотской задачей.
Добавь что прогрессбар МОДАЛЬНЫЙ ))))
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109517
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
еще над тем когда @WebMethod тебе вернет результат, если ты не выделишь задачу в отдельный поток.

запрос по Ajax - зачем тебе сразу результат?))))
Прогрессбар показывает другой кусок кода.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109518
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer
Не спрашивай зачем, такой уж я экцентричный персонаж)

я и говорю - очень эксцентричный ты и автор))))
Можно порассуждать над идиотской задачей.
Добавь что прогрессбар МОДАЛЬНЫЙ ))))


Можно. А можно цепляться к словам и затролливать каждый топик. Чем ты с успехом и занимаешься уже который год тут. Без обид.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109519
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
уже решал в 2009.
верю. ТС тоже из тех лет))).
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109520
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer,
я же доказал что поток не нужен.
Обиделся что в 2009 году фигню делал?
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109521
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer,
запомни, мембер.
Времена с 2009 года сильно изменились.
Если кто то сегодня в век асинхронности делает:
"Идет загрузка. Ждать!"
То это просто издевательство над юзверями.
Удачи!
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109522
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer,
я же доказал что поток не нужен.
Обиделся что в 2009 году фигню делал?


Не доказал. Ты повесишь долгоиграющую задачу в тредпуле который обрабатывает входящие запросы. Это плохое решение. Второе, второму запросу как-то нужно понимать прогресс чего опрашивать. Допустим, ты предполагаешь, у нас у пользователя может быть только одна долгоиграющая задача и опрашивать ты будешь по айди пользователя. Но примером запуска с двух вкладок, пусть и искусственным, я сломал этот сценарий. Задач запущено две, а без идентификатора прогресс ты получишь только одной.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109523
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Обиделся что в 2009 году фигню делал?

то что советует fixxer счас - это не то что
fixxer
а лонг-пол/комет.

он делал.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109524
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer,
запомни, мембер.
Времена с 2009 года сильно изменились.
Если кто то сегодня в век асинхронности делает:
"Идет загрузка. Ждать!"
То это просто издевательство над юзверями.
Удачи!


Так это топикстартер делает. Я предлагаю полностью асинхронное решение. А ты как всегда отвечаешь не на то что написано.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109525
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Не доказал. Ты повесишь долгоиграющую задачу в тредпуле который обрабатывает входящие запросы.

именно! По самому ТЗ видно что что запросов будет на 10 человек). А ты масштабировать начал. За пул беспокоится)
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109526
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

fixxer предлагает хороший вариант на основе технологии тс , правда со своими сложностями
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109527
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
А ты как всегда отвечаешь не на то что написано.
вообще то я тебя цитирую. А ты целиком на весь пост.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109528
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
именно! По самому ТЗ видно что что запросов будет на 10 человек).
аппетиты приходят во время еды.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109529
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Допустим, ты предполагаешь, у нас у пользователя может быть только одна долгоиграющая задача и опрашивать ты будешь по айди пользователя. Но примером запуска с двух вкладок, пусть и искусственным, я сломал этот сценарий. Задач запущено две, а без идентификатора прогресс ты получишь только одной.

Да!
Не просил ТС кучу вкладок.
Пусть попросит.
Архитектор должен давать линейку решений.
А не сразу асинхронность на 50 отчётов из 2000 годов.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109530
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer
Допустим, ты предполагаешь, у нас у пользователя может быть только одна долгоиграющая задача и опрашивать ты будешь по айди пользователя. Но примером запуска с двух вкладок, пусть и искусственным, я сломал этот сценарий. Задач запущено две, а без идентификатора прогресс ты получишь только одной.

Да!
Не просил ТС кучу вкладок.
Пусть попросит.
Архитектор должен давать линейку решений.
А не сразу асинхронность на 50 отчётов из 2000 годов.


Ну ты сам все за себя наговорил. Коллегам достаточно прочитать топик и составить собственное мнение.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109531
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Задач запущено две

У нас на работе на это отвечает руководить проекта - "не твое дело Иваныч. Команды писать менеджер задач не было! "
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109532
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Ну ты сам все за себя наговорил. Коллегам достаточно прочитать топик и составить собственное мнение.

ну за линейку то ты согласен?
Ты просто пришел без нее в топик))).
А это _в архитектуре_ нельзя.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109534
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer
Ну ты сам все за себя наговорил. Коллегам достаточно прочитать топик и составить собственное мнение.

ну за линейку то ты согласен?
Ты просто пришел без нее в топик))).
А это _в архитектуре_ нельзя.


Твое решение настолько лобовое, что страдает качество и юзер экспириенс. Любой тестер завернет его с багрепортом. У них в скриптах тестирования веб приложений прописано: открыть страницу в соседней вкладке и повторить действия, сравнить результат.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109535
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp

У нас на работе на это отвечает руководить проекта - "не твое дело Иваныч. Команды писать менеджер задач не было! "


На что получает ответ: ты РП, вот и своди жопочасы в эксельке, а инженеры сами разберутся за архитектуру, где менеджер задач лучше подходит, а где сортировка пузырьком.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109537
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Но примером запуска с двух вкладок, пусть и искусственным, я сломал этот сценарий. Задач запущено две, а без идентификатора прогресс ты получишь только одной.
вот убей не понимаю.
Вот вопрос запуска из двух вкладок ВЕДЬ НЕ К ПРОГРАММИСТАМ ОТНОСИТСЯ.
Это вообще не их дело решать что будет при запуске новой вкладки или нового браузера.
Есть IDEA которая открывает только один проект. И есть Eclipse который открывает сразу 15 проектов.
Это прогер внизу решал что ли? ))
Странный сегодня день....пятница)
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109538
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
где менеджер задач лучше подходит, а где сортировка пузырьком.

ты архитектуру с АЛГОРИТМАМИ то не путай
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109539
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Любой тестер завернет его с багрепортом. У них в скриптах тестирования веб приложений прописано: открыть страницу в соседней вкладке и повторить действия, сравнить результат.
правда?
А результат какой?
Такой?
- Ваша задача Иван Петров, выполняется 13 сек.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109541
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer
Но примером запуска с двух вкладок, пусть и искусственным, я сломал этот сценарий. Задач запущено две, а без идентификатора прогресс ты получишь только одной.
вот убей не понимаю.
Вот вопрос запуска из двух вкладок ВЕДЬ НЕ К ПРОГРАММИСТАМ ОТНОСИТСЯ.


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

Странный сегодня день....пятница)

И правда что. Не думал, что придется объяснять такие прописные истины мемберу твоего опыта.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109542
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас запускал удаленное администрирование.
Там софтина может быть в виде как процесса, так быть и сервисом.
Дак вот, при попытке нажать сразу и так и эдак, она выдала - "мы не можем выполнить сразу 2 задачи".
))))
Видно что не программист писал)))
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109543
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
Сейчас запускал удаленное администрирование.
Там софтина может быть в виде как процесса, так быть и сервисом.
Дак вот, при попытке нажать сразу и так и эдак, она выдала - "мы не можем выполнить сразу 2 задачи".
))))


Отличная софтина. Вот если бы в твоей реализации вторая вкладка выдавала: "Задача проверки почты уже запущена", то тоже было бы вполне рабочим решением.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109544
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Ну конечно относится. Веб это конкурентная среда, ты не можешь проектировать решение в изоляции от окружения. Ты должен продумать, сохраняются ли инварианты при одновременных запросах.

переведи.
Почему запросы должны множится при клике на каждую кнопку и вкладку?
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109545
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
Вот если бы в твоей реализации вторая вкладка выдавала: "Задача проверки почты уже запущена"

Давай по буквам.
Проверять почту можно хоть с 5ти вкладок или 100 машин одновременно.
Поэтому сообщение такое надо:
ОТЧЁТ уже запущен! Если в сессии есть объект отчет.
Так?
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109546
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer
Ну конечно относится. Веб это конкурентная среда, ты не можешь проектировать решение в изоляции от окружения. Ты должен продумать, сохраняются ли инварианты при одновременных запросах.

переведи.
Почему запросы должны множится при клике на каждую кнопку и вкладку?


Не должны, но будут. Решить можно двумя способами: контроллировать конкурентность, как предложил я, или ограничить, как сделано в той твоей софтине по администрированию. В любом случае, просто запускать задачу по запросу в сервлете нельзя.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109547
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer,
Дано:
- 100 запросов в ОДНОЙ сессии Иванов Пётр
- 30 запросов в одной сессии fixxer
Вопрос:
- нужны ли тут потоки автоматически по условию ТЗ?
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109548
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer
Вот если бы в твоей реализации вторая вкладка выдавала: "Задача проверки почты уже запущена"

Давай по буквам.
Проверять почту можно хоть с 5ти вкладок или 100 машин одновременно.
Поэтому сообщение такое надо:
ОТЧЁТ уже запущен! Если в сессии есть объект отчет.
Так?


Ну вот видишь, уже консенсус нарисовался. А ты говоришь пятница))
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109549
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
В любом случае, просто запускать задачу по запросу в сервлете нельзя

просто запустить предлагал какой то третий человек.
Я предлагал:
- без всяких потоков процент выполнения писать в сессионный объект или в БД.
У контейнера из коробки есть средства для этого.
Ты просто сказал что это плохо)))
И понеслось.
))
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109550
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer,
ну а я более толерантен.
Есть два решения - и они оба технически работают.
Вопрос про то что надо или нет запускать 5 отчётов сразу НЕ ко МНЕ.
Второе решение стоит дороже.
Имхо
Удачи!
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109551
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer,
Дано:
- 100 запросов в ОДНОЙ сессии Иванов Пётр
- 30 запросов в одной сессии fixxer
Вопрос:
- нужны ли тут потоки автоматически по условию ТЗ?


Да можно и на веб-пуле запускать, обсуждали уже. Но неаккуратно получается и соединение висит непонятно зачем. А в моем варианте с контроллируемой конкурентностью через таск айди, через потоки и проще сделать. Я вот не пойму, опытный девелопер знает как писать многопоточку, в современной джаве все есть, чтобы не лезть на низкий уровень. Почему этого нужно шарахаться как черт от ладана?
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109552
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer
и соединение висит непонятно зачем

угу. Ты как вадя.
"соединение висит" ))))
Код: plaintext
1.
2.
3.
4.
Приходит мужик к врачу.
- Здравствуйте, - говорит. И начинает раздеваться. Снимает рубашку, складывает её по швам, пуговки застегивает и кладет на стул. Снимает майку, тоже складывает и укладывает рядом с рубашкой. Ботиночки рядом поставил, носки снял, разгладил и рядом положил. Брюки по стрелочкам и на спинку стула, трусы снимает, тоже по швам разгладил рядом с майкой положил и говорит:
- Знаете, доктор, вот посмотрите, у меня одно яичко чуть выше другого.
- Ну и что тут такого?
- Как что? Неаккуратно как-то.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109553
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
fixxer
В любом случае, просто запускать задачу по запросу в сервлете нельзя

процент выполнения писать в ... БД.


А чего в БД? Давай сразу на почту процент выполнения слать. А черт, тогда чтобы его показать, придется почту проверять, а это уже рекурсия какая-то )))))
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109556
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fixxer,
_линейка_ брат - это больше двух.
А я выше писал 1) сессионный объект 2) БД....
Так что я обо всём подумал ещё на 1-ой странице))
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109557
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
что то тут разошлись, со всякими теориями

для тех кто решил не спать, уточню протокол работы с Арр

- пользователь проходит авторизацию(логин и пароль)
- если пользователь в группе ОПЕРАТОР тогда получает доступ к странице УПРАВЛЕНИЕ Проектами

на странице есть кнопка ПОЛУЧИТЬ ПОЧТУ. все дело в том что работа Оператора идет через почту (заказчики письма присылают с заказами), первое дело - получить почту и посмотреть что там наприсылали
после нажатия кнопки
- Арр закачивает все письма из ИНБОКС в каталог на ЖД
- удаляет все письма из ИНБОКС (чтоб не было дубликатов на ЖД)
- выводит на страницу таблицу с инфо по письмам (имя письма, от кого, дата)

вот тут и нужно указать оператору что загрузка писем в процессе, ну шоб не нервничял, бабы они нервные

после загрузки писем оператор их изучает, мусор удаляет и переводит нужные письма в раздел ПРОЕКТЫ для дальнейшей работы

таким образом, загрузка почты это разовый или нечастый процесс, но операторов может быть несколько
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109563
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair
таким образом, загрузка почты это разовый или нечастый процесс, но операторов может быть несколько
тогда уточнение - процесс обработки запускает только первый оператор?
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109572
Фотография fixxer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

Как должна реагировать система, если два оператора примерно в одно и то же время попытаются нажать кнопку получения почты?
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109603
Pcrepair
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тогда уточнение - процесс обработки запускает только первый оператор?
Как должна реагировать система, если два оператора примерно в одно и то же время попытаются нажать кнопку получения почты?

нет, любой оператор. хотя... может кнопку вообще уберу, загрузка в автомате через каждые 30? минут, Арр работает то круглосуточно
с другой стороны, а если нужно срооочно! получить почту, такое то же бывает. тогда кнопку оставлю, но где нибудь внизу, чтоб не мозолила

если идет процесс загрузки писем в Арр, то конечно попытка второго оператора запустить процесс загрузки писем должна блокироваться. типа кнопку на время заблокировать и выставить сообщение "загрузка писем идет. ЖДАТЬ"

но все прибамбасы потом. сейчас нужно выбрать единственно верный путь(вывод сообщений о ходе работы метода класса) и в .... путь. тоесть отработать, довести до ума и все такое
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109604
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

авторединственно верный путь(вывод сообщений о ходе работы метода класса)вот из практики - самое простое и удобное - ws....
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109625
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pcrepair,

конечно только для одной фишки - использовать ws - не стоит, но стоит посмотреть более широко - и все ajax заменяются с большим интузазизмом.
отправлять сообщения браузеру можно из любой части кода.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109705
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Отстань от него.
Твои сокеты только для чата.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109707
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
вадя,
Отстань от него.
Твои сокеты только для чата.
ты в этом уверен?

как решать свою проблему - личное дело ТС, я не настаиваю, я только рекламирую, то от чего получаю удовольствие. и отсутствие проблем.
...
Рейтинг: 0 / 0
Индикация работы метода класса
    #40109715
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя,
Я вижу.
Что ТС не имеет не сил ни желание что либо масштабировать или изобретать.
Хочет в вебе прогрессбар как в десктопе - пускай делает.
Приходи с конкретной ошибкой и скринами стека.
Удачи ему.
...
Рейтинг: 0 / 0
81 сообщений из 81, показаны все 4 страниц
Форумы / Java [игнор отключен] [закрыт для гостей] / Индикация работы метода класса
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]