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

KitKat21

Client
Joined
May 2, 2017
Messages
268
Reaction score
192
Points
43
Привет!

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

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

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

doc

Client
Joined
Mar 30, 2012
Messages
8,685
Reaction score
4,652
Points
113

specialist

Client
Joined
Dec 28, 2018
Messages
734
Reaction score
343
Points
63
Zenno (с C #) в Bad End
по плохому сценарию это уже ветка выхода, даже если ее завернуть и ошибка не в подключении к интернету, а где-то на сайте, то так и будет гонять.

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

Juniorcpa

Client
Joined
May 27, 2014
Messages
2,031
Reaction score
1,287
Points
113
по плохому сценарию это уже ветка выхода, даже если ее завернуть и ошибка не в подключении к интернету, а где-то на сайте, то так и будет гонять.

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

backoff

Client
Joined
Apr 20, 2015
Messages
6,333
Reaction score
6,622
Points
113
  • Thank you
Reactions: one

Rdenwer

Client
Joined
Oct 14, 2010
Messages
254
Reaction score
61
Points
28
Схема действий такова (Чисто теоретически)

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

specialist

Client
Joined
Dec 28, 2018
Messages
734
Reaction score
343
Points
63
А как это будет работать примерно?
По BAD если пошел выход, то это выход. В данном варианте не доводится до этого, проверяя подключения и возможно по блоку выбора заворачивая обратно.

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

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

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

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

Attachments

  • Thank you
Reactions: KitKat21

Juniorcpa

Client
Joined
May 27, 2014
Messages
2,031
Reaction score
1,287
Points
113
По BAD если пошел выход, то это выход. В данном варианте не доводится до этого, проверяя подключения и возможно по блоку выбора заворачивая обратно.

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

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

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

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

specialist

Client
Joined
Dec 28, 2018
Messages
734
Reaction score
343
Points
63
сли бы это можно было как-то в фоне выполнять, а не после каждого действия чекать, то да
AutoIt, SikuliX, AutomateIt ... и т.п. программы автоматизации могут проверять и останавливать выполнение нажимая кнопку стоп.

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

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

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

Yuriy Zymlex

Client
Joined
Oct 23, 2016
Messages
6,713
Reaction score
3,478
Points
113
Если бы это можно было как-то в фоне выполнять
На C# можно и в фоне, но это потребует, чтобы шабы уже создавались с определённой логикой под это...
 

KitKat21

Client
Joined
May 2, 2017
Messages
268
Reaction score
192
Points
43
Спасибо всем за ваши идеи и советы!

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


(извините, пример на английском)
 

KitKat21

Client
Joined
May 2, 2017
Messages
268
Reaction score
192
Points
43
По BAD если пошел выход, то это выход. В данном варианте не доводится до этого, проверяя подключения и возможно по блоку выбора заворачивая обратно.

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

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

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

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

Users Who Are Viewing This Thread (Total: 1, Members: 0, Guests: 1)