1

Тема: AHK: Перезапуск скрипта, когда нет интернета.

Арендую сервер. На нём работает мой AHK скрипт. Там бывают сбои с интернетом и вылазит ошибка (скриншот).
http://dl3.joxi.net/drive/2017/08/24/0004/3965/282493/93/aace6a9195.png
Как осуществлять перезапуск скрипта или заставить его ждать соединения (инет, обычно, пропадает секунд на 15)?

Прилагаю функцию, которая работает с интернетом.

QueryResponseWebsite(url)
{
	global AnswerWebsite
    HttpObj := ComObjCreate("WinHttp.WinHttpRequest.5.1")
    HttpObj.Open("GET", Url) 
    HttpObj.Send()
	AnswerWebsite := HttpObj.ResponseText
}

2

Re: AHK: Перезапуск скрипта, когда нет интернета.

HttpObj.WaitForResponse(время в секундах) - ожидание ответа от сервера, к которому идёт обращение.

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

3

Re: AHK: Перезапуск скрипта, когда нет интернета.

Чтобы проверить наличие интернета, обычно пингуют несколько стабильно работающих серверов. Такие темы уже бывали.

4

Re: AHK: Перезапуск скрипта, когда нет интернета.

А, и ещё, после установки времени на ответ можно переменной AnswerWebsite проверять ответ, если его не было - переменная пустая.

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

5

Re: AHK: Перезапуск скрипта, когда нет интернета.

ypppu, если я правильно понял описание, сбои случаются на стороне сервера, а не клиента.

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

6

Re: AHK: Перезапуск скрипта, когда нет интернета.

Да вроде без разницы, где запущен ahk-скрипт, на сервере или у клиента. Ahk-скрипт может проверить наличие интернета командой ping.

7 (изменено: Malcev, 2017-08-24 18:57:26)

Re: AHK: Перезапуск скрипта, когда нет интернета.

Впишите:

ComObjError(false)

Табличка выходить не будет и скрипт будет продолжать свою работу.
Если же вы хотите при подобной ошибке, чтобы скрипт делал какие-то новые действия, то проверяйте A_LastError после Send().

8

Re: AHK: Перезапуск скрипта, когда нет интернета.

ypppu, не понимаю, предположим скрипт запущен на сервере. Вы предлагаете серверному скрипту проверять наличие у себя интернета и отправлять результат на клиентский скрипт? Тогда какой в этом смысл? Или вы предлагаете перед отправкой пакетов проверять клиентскому скрипту доступ к серверу через ping? А до начала отправки сервер был доступен а в процессе отправки отвалится?

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

9

Re: AHK: Перезапуск скрипта, когда нет интернета.

Да вроде ТС не хотел, чтобы скрипт отправлял результат проверки интернета куда-либо. Просто нужно проверить, доступен ли интернет.

10

Re: AHK: Перезапуск скрипта, когда нет интернета.

Нашёл выход.
Команда "HttpObj.WaitForResponse()", без времени, она просто ждёт удачного соединения.

11

Re: AHK: Перезапуск скрипта, когда нет интернета.

Ждёт не более 30 секунд.

12

Re: AHK: Перезапуск скрипта, когда нет интернета.

ypppu, ну допустим на сервере скрипт узнает что у него нету интернета? Как это повлияет на клиентский скрипт, который отправит ему пакеты независимо от того, есть интернет на сервере или нет?

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

13

Re: AHK: Перезапуск скрипта, когда нет интернета.

belyankin12, а при чём здесь тогда клиент? Вопрос звучит так:

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

Не требуется влиять на клиентский скрипт. Да и не повлияешь никак, когда интернет от сервера отрублен.

14

Re: AHK: Перезапуск скрипта, когда нет интернета.

Ну так в том то и дело, что не повлияешь. Картина такова: на сервере есть скрипт, которому отправляет данные клиентский скрипт, но бывает что на сервере интернет пропадает и клиентский скрипт, посылая на серверный данные, просто выдает ошибку, т.к. серверный скрипт не обрабатывает данные и не дает ответа. Как сделать перезапуск клиентского скрипта чтобы он не выдавал ошибку либо заставить его ждать ответа, т.к. интернет на сервере пропадает секунд на 15 обычно. Так я понял описание автора.

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

15

Re: AHK: Перезапуск скрипта, когда нет интернета.

belyankin12 пишет:

HttpObj.WaitForResponse(время в секундах) - ожидание ответа от сервера, к которому идёт обращение.

Этот вариант, что бы вы не вписывали будет ждать тоже не более 30 секунд.

16

Re: AHK: Перезапуск скрипта, когда нет интернета.

Я знаю про ограничитель в 30 секунд, правда на практике его узнал, но я сомневаюсь, что кто-то будет ждать столько долго .

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