powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Поддержание соеденения с сервером (csp)
8 сообщений из 8, страница 1 из 1
Поддержание соеденения с сервером (csp)
    #38714740
DKspider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток.
При разработке с использованием csp возникла следующая ситуация:
вызываю из JS метод в асинхронном режиме #call(ep.utils.JSON.getCalcResCall(tCo,duo))#; по окончанию работы данный метод вызывает перерисовку части страницы следующим образом: &js<
  var listOfResult=(jQuery.parseJSON('#(res)#')).OutputList;
  showResList(listOfResult[0]);

  RemoveLoad($('.wrapper'));
 >Метод достаточно времязатратный и естественно со временем вызывает ошибку
Код: plaintext
"Unexpected status code, unable to process HyperEvent: Gateway Time-out (504)".

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

Хотелось бы узнать, существуют ли программные трюки, которыми этого можно избежать?

Например, можно ли во время работы на сервере данного метода посылать пустые запросы, для поддержания коннекта?
...
Рейтинг: 0 / 0
Поддержание соеденения с сервером (csp)
    #38714766
Фотография DAiMor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DKspiderНапример, можно ли во время работы на сервере данного метода посылать пустые запросы, для поддержания коннекта?Это бесполезно, все они встанут в очередь и будут ждать пока выполнится первый запрос. Если сессия не хранимая то просто будут висеть на сервере в ожидании блокировки на сессию, т.к. сессия уже занята другим процессом. Если сессия хранимая то шлюз, зная что процесс еще работает поставит его в очередь.

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

так же еще есть вариант с использованием WebSockets (начиная с 2014.1), в данном случае соединение является постоянным пока сокет открыт в браузере, и сервер на один запрос может отправлять ответ порциями по мере готовности
...
Рейтинг: 0 / 0
Поддержание соеденения с сервером (csp)
    #38714848
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DKspiderХотелось бы узнать, существуют ли программные трюки, которыми этого можно избежать?

Например, можно ли во время работы на сервере данного метода посылать пустые запросы, для поддержания коннекта?
Нужно не сервером клиента шубуршить... А пусть сам клиент обращается к серверу с вопросами типа "как там дела".
...
Рейтинг: 0 / 0
Поддержание соеденения с сервером (csp)
    #38714857
DKspider
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,
Пытался сделать что-то подобное через
Код: javascript
1.
2.
3.
4.
...
interID = setInterval(#call(ep.utils.JSON.getConn()#,30000);
#call(ep.utils.JSON.getCalcResCall(tCo,duo))#;
...


В этом то собственно и проблема. Как написал DAiMor данные запросы с клиента просто встанут в очередь, даже если их вызов был асинхронным. Видимо все-таки придется пытаться делать через WebSockets.
...
Рейтинг: 0 / 0
Поддержание соеденения с сервером (csp)
    #38715417
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DKspider , выкинь ты тот КАЛ...
Делай обычный Ajax-запрос. Полученый ответ можно обрабатывать как обычный прогресс...
...
Рейтинг: 0 / 0
Поддержание соеденения с сервером (csp)
    #38715432
doublefint
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DKspider, предлагаю такую схему:
Клиент вызывает сервер для запуска длительного по времени исполнения метода
Сервер запускает метод в отдельном процессе ( JOB ) и сразу отдает клиенту некий идентификатор запущенного процесса ($ZCHILD)
Клиент периодически опрашивает сервер (ajax, webSocket) о состоянии процесса, при определенном ответе прекращает опрос
...
Рейтинг: 0 / 0
Поддержание соеденения с сервером (csp)
    #38715592
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
doublefint , поддерживаю.
...
Рейтинг: 0 / 0
Поддержание соеденения с сервером (csp)
    #38755190
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DKspider ,

Можете посмотреть пример на ZEN ( 16154583 , вариант №2) запуска фоновой задачи с выводом прогресса её выполнения и переделать его на CSP.
Под капотом ZEN используется как раз описанная doublefint схема работы.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Поддержание соеденения с сервером (csp)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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