|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
Доброго времени суток. Возможно ли реализовать перезапуск Cache из ZEN/CSP с последующим восстановлением сессии? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 14:20 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
vcoshakДоброго времени суток. Возможно ли реализовать перезапуск Cache из ZEN/CSP с последующим восстановлением сессии?Caché программно может себя остановить. Для того чтобы перезапустить нужно это делать на уровне Операционной системы, например там скрипт и его вызывать асинхронно. А вот восстановить сессию конечно уже не получится. Cache не сохраняет сессии при остановке сервера, можно наверно это обойти, но зачем. Если так нужно, то что-то делаеется не правильно. Перезапускать сервер пока с ним работают пользователи, зачем это надо? ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 15:11 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
DAiMor, Это нужно для актуализации системы. При актуализации заменяется и заново компилируется весь проект, модифицируются глобали. До актуализации нужно остановить все пользовательские процессы и запретить пользователям вход. Поскольку в нашем приложении есть процессы, которые запускаются "псевдо-случайно" (при определённых условиях) и без привязки к конкретному пользователю, их трудно вычленить и остановить. Проще перезапустить систему. В данный момент это делает .NET-приложение, которое управляет всем процессом актуализации. Стоит задача всё сделать через WEB приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.03.2019, 15:38 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
vcoshak, очень похоже на рытьё подземного хода на чердак ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 01:18 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
vcoshak, Повесить внешний сервис чтобы коцал базу по какому-либо выставленому web ui флагу? Звать внешний exe из каше? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.03.2019, 16:10 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
vcoshakПоскольку в нашем приложении есть процессы, которые запускаются "псевдо-случайно" То имеет смысл добавить во все эти процессы проверку не находится ли система "состоянии актуализации", по моему это проще чем рестартовать БД ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 09:38 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
Коллеги, вопрос не состоит в том, чтобы вообще избежать перезапуска Cache - этот вопрос вообще не обсуждается, плохо это или хорошо. Вопрос в том, возможно ли это реализовать из ZEN/CSP. Я задал вопрос на этом форуме т.к. сам не пользуюсь и не имею опыта работы с WEB/JS. Но думаю, что в принципе это реализовать можно. Например, такой подход реализован в Веб-интерфейсе бытового рутера "FritzBox" (если кто знает) с простейшим (по сравнению с Cache) Веб-сервером. Как я понимаю, решение могло бы быть в том, чтобы JS из веб-страницы послал команду перезапуска и потом периодически проверял, доступен ли веб-сервер снова. Если да, то веб-страница перезагружается. При этом восстанавливать в точности ту же сессию не обязательно. Её состояние можно сохранить перед рестартом, а потом загрузить сохранённые параметры в новую сессию. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 11:29 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
vcoshak, WEB/JS здесь эту задачу вообще не решают, это просто интерфейс. Так как же как в вам упомянутом роутере, и в любом другом подобном оборудовании, такое есть. Но делается это просто вызовом определенных функций на стороне сервера. И ващем случае, если вы точно решили что вам так надо и вы готовы пойти на все риски, такие как безопасность, и то что сервер не вернется после остановки. Вам нужна программа или простой скрипт внешние по отношению к Caché, которые смогут сделать все по команде, и проверить что все прошло верно. как я уже писал из Caché вы сможете только его остановить. Все остальные варианты только из вне, управление сервисом. И варианты реализации могут отличаться от операционной системы. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 11:52 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
Насчет восстановления сессии, пока не совсем понятно, зачем это нужно. Попытаться реализовать конечно можно, но проще и правильней реализовать так чтобы в этом отпала необходимость. Если нужно, чтобы не нужно было авторизовываться сразу же после перезапуска, я пока не вижу в этом необходимости по описанному процессу. Если это нужно чтобы было понятно, где продолжить, то тут просто нужно разбить на этапы и сохранять в глобал, какие этапы выполнены, и даже если просто открыли страницу с нуля, должно вернуть последний не выполненный этап. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 11:58 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
[quot DAiMor]vcoshakCache не сохраняет сессии при остановке сервера Чтобы не сохранить то что хранится в глобалах надо иметь специальный код, который что-то там удалит. А зачем удалять сессии? Они становятся какими-то кривыми от того, что сервер перезапустился? Тогда почему бы не удалять все файлы на компе при его перезапуске? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 14:51 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
DAiMorкак я уже писал из Cache вы сможете только его остановить...Почему же, можно и перезапустить - через асинхронный запуск внешней команды $zf(-2,"cmd"). Баловался этим лет 20 назад, когда только перешли в Cache и по привычке хотелось делать всё, не выходя из интерфейса командной строки СУБД. Схему обновлений можно реализовать иначе: - запрет входа в приложение любым способом, например, установкой некоторого флага - убиение всех пользовательских сессий/процессов - обновление - снятие запрета входа. Перезапуск сервера ради установки обновления - можно ещё понять, если много фоновых процессов работает и сложно их централизованно остановить или надо CACHETEMP почистить, хотя и это решаемо. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 16:58 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
Alexey Maslov, у нас всё происходит ровно по той схеме, которую вы описали. Только управляет всем .NET-приложение. Однако хотелось бы уйти от установки и поддержки лишнего .NET-клиента, т.к. он делает простые вещи: 1. загружает файлы программ и глобалей из файловой системы (через стандартный диалог) в cache 2. ставит флаг запрета входа в приложение и перезапускает cache 3. передаёт управление классу cache, который выполняет всю работу по обновлению 4. принимает и показывает протокол и результат 5. снимает флаг запрета входа при успехе. Всё это можно было бы (как мне кажется) реализовать через ZEN, если бы загруженная в браузер страница сохраняла активность после асинхронной подачи команды на перезапуск cache и отслеживала новый старт (таймер в JS?), после чего снова загружалась и активировала процесс начиная с п.3 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 17:50 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
vcoshak...у нас всё происходит ровно по той схеме, которую вы описали...С точностью до перезапуска Cache. Зачем он вам? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 18:21 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
Alexey MaslovПочему же, можно и перезапустить - через асинхронный запуск внешней команды $zf(-2,"cmd").Такой способ я и не отрицаю и его как раз предлагал, я про нативный способ без вызова в операционную. Доступна только остановка ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 18:49 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
Alexey Maslovvcoshak...у нас всё происходит ровно по той схеме, которую вы описали...С точностью до перезапуска Cache. Зачем он вам?Так вот для этого же: Alexey MaslovПерезапуск сервера ради установки обновления - можно ещё понять, если много фоновых процессов работает и сложно их централизованно остановить...Именно так и есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.04.2019, 22:24 |
|
Перезапуск Cache из ZEN/CSP
|
|||
---|---|---|---|
#18+
vcoshak...если много фоновых процессов работает и сложно их централизованно остановить... Именно так и есть.На самом деле, не ахти какая проблема обойти все процессы в цикле $order(^$Job(pid)) или другим способом и прибить "свои", распознав их по некоторому признаку, и аккуратно прибить. Признаком может быть некоторая переменная, которая должна быть определена, или блокировка Lock +^ActivityGlobal(pid), наличие которой можно определить по $data(^$Lock(...)). Второе надёжней, IMHO, и работать должно быстрее, чем лазить в каждый процесс для проверки его переменной. В любом случае, время, которое будет потрачено на убиение процессов, наверняка окажется много меньше времени, которое требуется для установки обновления. Профит: - избегаете перезапуска Cache, который в случае Windows обычно требует и перезагрузки ОС из-за незахвата Large Pages; другие негативные последствия перезапуска Cache, думаю, вам тоже известны; - не надо решать нетривиальную задачу, которую вы поставили в данной теме. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.04.2019, 11:19 |
|
|
start [/forum/topic.php?fid=39&msg=39794630&tid=1556201]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
30ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 270ms |
total: | 399ms |
0 / 0 |