Центр поддержки > База знаний > Технические вопросы > Автоматический перезапуск терминала по расписанию


Автоматический перезапуск терминала по расписанию


1. Зачем нужен автоматический перезапуск терминала?

Автоматический перезапуск:
1. Позволяет решить проблему с  советниками (роботами), которые в процессе работу могут периодически "подвешивать" терминал.
2. Полезен в случаях, когда в используемом советнике имеется "утечка памяти" (объем занимаемой терминалом памяти все время постепенно увеличивается в процессе работы такого советника).
3. Как страховка от случайных неожиданных сбоев в работе МТ, когда терминал неожиданно закрывается, теряет подключение и не пытается переподключиться и т.д.

2. Как работает автоматический перезапуск терминалов?

В системный планировщик Windows добавляется задание, которое будет с заданной вами периодичностью запускать файл restart.bat, который находится в папке Сrontab на рабочем столе.

Этот скрипт принудительно завершает все запущенные у вас terminal.exe, а затем заново запускает терминалы, ярлыки которых есть в папке Startup на рабочем столе.

Важно: перезапускаются только terminal.exe! Если у вас МТ5 то исполняемый файл по умолчанию называется terminal64.exe, его нужно переименовать в terminal.exe. Не забудьте создать новый ярлык для него после переименования.

Каждый запуск в целях отладки и контроля записывается в журнал - файл restart_log.txt на рабочем столе. 

3. Можно ли настроить перезапуск только для отдельных терминалов?

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

4. С какой периодичностью может производиться автоматический перезапуск терминалов?

Доступны следующие варианты расписания перезапуска:

1. enable_restart_1week.cmd: 1 раз в 7 дней, в 00:00
2. enable_restart_3d.cmd: 1 раз в 3 дня, в 00:00
3. enable_restart_2d.cmd: 1 раз в 2 дня, в 00:00
4.
 enable_restart_1d.cmd: 1 раз в день, в 00:00
5. enable_restart_12h.cmd: 2 раза в день, в 00:00 и 12:00
6. enable_restart_6h.cmd: через каждые 6 часов (00:00, 06:00, 12:00 и т.д.)
7. enable_restart_4h.cmd: через каждые 4 часа (00:00, 04:00, 08:00 и т.д.)
8. enable_restart_3h.cmd: через каждый 3 часа (00:00, 03:00, 06:00 и т.д.)
9. enable_restart_2h.cmd: через каждые 2 часа (00:00, 02:00, 04:00 и т.д.)
10. enable_restart_1h.cmd: через каждый час (00:00, 01:00, 02:00 и т.д.)
11. enable_restart_30m.cmd: каждые 30 минут
12. enable_restart_10m.cmd: каждые 10 минут
13. enable_restart_5m.cmd: каждые 5 минут 

Сделать переапуск чаще чем раз в 5 минут - нельзя

Будьте внимательны, не перепутайте enable_restart_1h.cmd с enable_restart_1d.cmd и т.д.

Важное замечание: каждый следующий запуск, планировщик будет делать со случайной задержкой от 1 до 5 минут, т.е. перезапуск произойдет не ровно в 00:00, а в промежуток с 00:00 до 00:05. Это нужно, что бы терминалы разных пользователей не перезапускались одновременно, тем самым создавая повышенную нагрузку. 

На сервере используется единое восточноевропейское время (GMT+2), зимой это на 1 час меньше МСК. 

5. Какую частоту перезапуска терминалов выбрать?

Зависит от того, на сколько часто возникают сбои в работе используемого вами советника.  Многие наши клиенты для робота profit-fx и WSB устанавливают 30 минутный интервал. В целях профилактического перезапуска  и  периодического освобождения ресурсов для стабильно работающего терминала обычно достаточно одного перезапуска в сутки.  

6. Как настроить автоматический перезапуск терминалов по расписанию?

1. Закройте и затем заново запустит терминал что бы он сохранил все ваши последние настройки.

2. Нужно настроить автозапуск терминалов. Для этого просто скопируйте ярлыки (!) нужных терминалов с рабочего стола в папку Startup на рабочем столе.
Это строго обязательный пункт! Запускаться после закрытия будут только те терминалы, ярлыки которых добавлены в Startup (подробнее см. вопрос №10). 

Внимание: категорически запрещается добавлять в папку startup что-либо кроме ярлыков терминалов! В частности нельзя копировать туда ярлыки от enable_restart*.cmd и т.д. В случае нарушения аккаунт будет заблокирован до его устранения.
 
3. Для того, что бы проверить правильно ли вы добавили ярлыки терминалов в автозагрузку, и посмотреть что будет происходить при выполнении перезапуска по расписанию - запустите вручную скрипт restart.bat из папки Crontab. Он закроет запущенные терминалы и запустит ярлыки из Startup. Если все правильно - можно добавлять задание.

4. Откройте папку Crontab и запустите один из скриптов  enable_restart_*.cmd в зависимости от желаемой периодичности перезапуска (описание названия скриптов и их периодичности указаны в вопросе №4. Например, для перезапуска раз в 30 минут нужно запустить enable_restart_30m.cmd). Должно появиться сообщение об успешном создании запланированной задачи:




7. Как изменить расписание автоматического перезапуска терминалов?

Для изменения расписания просто запустите другой скрипт enable_restart_*.cmd (описание периодичности указаны в вопросе №4). Это заменит задание планировщика с новым расписанием.

8. Как увидеть какие задачи по перезагрузке сейчас есть и убрать ненужные?

Задание по перезагрузке может быть только одно. Установка каждого последующего  - заменяет предыдущее. Посмотреть, какое задание было создано последним вы можете в файле restart_log.txt на рабочем столе.

9. Как отключить автоматический перезапуск терминалов?

Для отключения автоматического перезапуска нужно запустить скрипт disable_restart.cmd из папки Crontab на рабочем столе. Это полностью удалит задание планировщика:

 

Если же выводится сообщение "ОШИБКА: не удается найти указанный файл":

 

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


10. Что будет, если я забыл добавить (или удалить) не нужный терминал из автозапуска? 

Если вы включили автоматический перезапуск, но не добавили в папку Startup ярлыки ВСЕХ нужных терминалов, то после каждого запуска задания ВСЕ ваши запущенные терминалы будут закрыты, но автоматически запустится не смогут (или запустится только тот терминал, ярлык которого есть в автозагрузке).

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

Очень важно: Всегда следите, что бы в автозагрузке всегда были ярлыки только тех терминалов, которые должны работать. Это важно если даже вы совсем не используете автоматический перезапуск! Корректная и бесперебойная работа терминалов, ярлыки которых не добавлены в автозапуск (папку Startup на рабочем столе) не гарантируется, и претензии по этому поводу не рассматриваются. 

11. При перезапуске у меня слетают сеты или сбиваются другие настройки терминала

Если вы вносите какие-то изменения в терминал (загрузили SETы, изменили таймфрейм, добавили новый график и т.д.) - после этого его нужно закрыть обычным образом и запустить заново. Тогда все эти изменения будут сохранены. Если же вы только внесли изменения, но не перезапустили после этого терминал "обычным" образом, то при принудительном закрытии все эти изменения могут быть утеряны. Просто перезапускайте терминал обычным образом каждый раз после завершения настройки или изменения параметров.

12. Можно сделать перезапуск каждые  3 / 1 минуту?

Нет, минимальный период перезапуска - 5 минут. Если терминал не может проработать без зависания даже 10-15 минут - рекомендуем решать эту проблему другим способом, в частности попробуйте Пересоздание (переустановка) аккаунта

13. У меня работает 2 терминала. Как сделать так, что бы перезапускался только один из них?

Если вы хотите, что бы какой-то из терминалов НЕ перезапускался - переименуйте его из terminal.exe в terminal64.exe (именно terminal64.exe), в этом случае процесс не будет принудительно завершаться, т.к. скрипт restart.bat завершает только процессы terminal.exe
Не забудьте обновить свойства ярлыка переименнованного терминала (или удалите старый и создайте новый ярлык для него).

14. У меня работает 2 терминала. Как сделать, что бы один перезапускался раз в сутки, а второй - каждые 30 минут?

В одном аккаунте возможно только одно задание перезапуска, поэтому сделать разную периодичность перезапаска для терминалов, работающих в одном аккаунте нельзя. Если вам нужна разная периодичность перезапуска - вам нужно сделать несколько отдельных аккаунтов (меню Услуги -> Заказать новую услугу), установить в каждом из них по одному терминалу и настроить перезапуск с нужным интервалом.


Помог ли вам данный ответ?

Распечатать статью Распечатать статью

Также читают
Замена аккаунта (просмотров: 868)