Bad End: попробуйте еще раз от последнего неудачного действия

KitKat21

Client
Регистрация
02.05.2017
Сообщения
268
Реакции
192
Баллы
43
Привет!

Я надеюсь, что кто-то может посоветовать.
У меня проблема.

В некоторые дни мой интернет отключается все время.
проекты терпят неудачу.

Есть ли способ сказать Zenno (с C #) в Bad End, чтобы вернуться к определенному действию (после получения идентификатора неудачного действия с C #). Так что бот может попробовать еще раз. Продолжить с последнего неудачного шага?
 
по плохому сценарию это уже ветка выхода, даже если ее завернуть и ошибка не в подключении к интернету, а где-то на сайте, то так и будет гонять.

Можно попробовать вынести в общий код функцию проверки стабильности интернет соединения и если подключения нет, то например спать пока не появится.
Код:
Развернуть Свернуть Копировать
public static bool CheckForInternetConnection()
{
    try
    {
        using (var client = new WebClient())
        using (client.OpenRead("http://clients3.google.com/generate_204"))
        {
            return true;
        }
    }
    catch
    {
        return false;
    }
}
 
  • Спасибо
Реакции: KitKat21
по плохому сценарию это уже ветка выхода, даже если ее завернуть и ошибка не в подключении к интернету, а где-то на сайте, то так и будет гонять.

Можно попробовать вынести в общий код функцию проверки стабильности интернет соединения и если подключения нет, то например спать пока не появится.
Код:
Развернуть Свернуть Копировать
public static bool CheckForInternetConnection()
{
    try
    {
        using (var client = new WebClient())
        using (client.OpenRead("http://clients3.google.com/generate_204"))
        {
            return true;
        }
    }
    catch
    {
        return false;
    }
}
А как это будет работать примерно?
 
  • Спасибо
Реакции: one
Схема действий такова (Чисто теоретически)

Шаб сможет вернуться к определенному действию, если возможно будет так настроить оповещение, что оно будет писать в лог ошибку от конкретного действия и запишет в файл, например цифру 1.
При перезапуске шаб проверяет этот файл и через свитч начинает работу с того места, которое нужно (которому присвоена цифра 1)
 
А как это будет работать примерно?
По BAD если пошел выход, то это выход. В данном варианте не доводится до этого, проверяя подключения и возможно по блоку выбора заворачивая обратно.

Простейший пример во вложении.

В общем коде функция проверяет может скачать тестовый файл или нет и возвращает ответ true или false
В C# коде зная результат проводим действия

В примере просто через 2 секунды запрашивается проверка и не пропускает дальше, пока не подключится.

Кубики C# висят пока не будут выполнены, если через 30 минут нужно прекратить ждать, то нужно например добавить счетчик и по нему завершать выполнение.
 

Вложения

  • Спасибо
Реакции: KitKat21
По BAD если пошел выход, то это выход. В данном варианте не доводится до этого, проверяя подключения и возможно по блоку выбора заворачивая обратно.

Простейший пример во вложении.

В общем коде функция проверяет может скачать тестовый файл или нет и возвращает ответ true или false
В C# коде зная результат проводим действия

В примере просто через 2 секунды запрашивается проверка и не пропускает дальше, пока не подключится.

Кубики C# висят пока не будут выполнены, если через 30 минут нужно прекратить ждать, то нужно например добавить счетчик и по нему завершать выполнение.
Если бы это можно было как-то в фоне выполнять, а не после каждого действия чекать, то да :)
 
  • Спасибо
Реакции: KitKat21
сли бы это можно было как-то в фоне выполнять, а не после каждого действия чекать, то да

AutoIt, SikuliX, AutomateIt ... и т.п. программы автоматизации могут проверять и останавливать выполнение нажимая кнопку стоп.

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

Критичное на C# переписать и вынести как самостоятельную программу с вызовом тоже не проблема.

Индивидуально решить всегда легче. А вот как по BAD вернуть в кольцо я не знаю, да и зачем возвращать тоже, всегда можно переписать без этого.
 
Спасибо всем за ваши идеи и советы!

вот что я имел в виду:
Когда он выходит из строя, он проверяет, не была ли проблема загружена. Затем, если да, он получает последний идентификатор действия, ожидает или перезагружает страницу и затем продолжает с последнего идентификатора действия.
Невозможно?

question-bad-end2.jpg

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

Простейший пример во вложении.

В общем коде функция проверяет может скачать тестовый файл или нет и возвращает ответ true или false
В C# коде зная результат проводим действия

В примере просто через 2 секунды запрашивается проверка и не пропускает дальше, пока не подключится.

Кубики C# висят пока не будут выполнены, если через 30 минут нужно прекратить ждать, то нужно например добавить счетчик и по нему завершать выполнение.

спасибо за пример кода! Может быть полезно при запуске проекта.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)