Можно ли создать внешнюю паузу для переменной в шаблоне?

Veterinar

Client
Регистрация
01.07.2016
Сообщения
194
Благодарностей
22
Баллы
18
Доброго времени суток.

Вопрос в том можно ли как то создать паузу снаружи шаблона для меняющейся переменной внутри.

На примере: 0/200 "провели цикл в шаблоне, и напарсили 200 единиц ссылок или любой другой информации" и получили на выходе 100/200 (200 это конечная цифра лимита цикла) и шаблон остановился на паузу в 180 минут к примеру, и через 180 минут снова напарсили 100 и получили суточный лимит 200/200 и шаблон остановился до конца суток, то есть до полуночи.

Реально ли что то подобное реализовать но без использования внутреннего блока паузы в шаблоне, так как это подразумевает, что шаб. должен быть запущен?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 684
Благодарностей
4 641
Баллы
113
Можно настроить расписание шаблона, например, запускать каждый час. А внутри шаблона прописывать условия. Нарпимер, шаблон запускается, узнает, что лимит исчерпан на сегодня, вырубается. Или запускается, узнает что лимит не исчерпан, но 3 часа с последнего прогона н епрошло - вырубается
и т.д.
 

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
457
Баллы
63
Можно создавать файл с содержимым timestamp а при следующем запуске сравнивать сколько прошло времени.
 

Veterinar

Client
Регистрация
01.07.2016
Сообщения
194
Благодарностей
22
Баллы
18
Можно настроить расписание шаблона, например, запускать каждый час. А внутри шаблона прописывать условия. Нарпимер, шаблон запускается, узнает, что лимит исчерпан на сегодня, вырубается. Или запускается, узнает что лимит не исчерпан, но 3 часа с последнего прогона н епрошло - вырубается
и т.д.
Вы имеете ввиду условие If внутри шаблона?
 

Veterinar

Client
Регистрация
01.07.2016
Сообщения
194
Благодарностей
22
Баллы
18
Можно создавать файл с содержимым timestamp а при следующем запуске сравнивать сколько прошло времени.
Можете подсказать в каком действии это реализуется?
 
Последнее редактирование:

Veterinar

Client
Регистрация
01.07.2016
Сообщения
194
Благодарностей
22
Баллы
18
Можно создавать файл с содержимым timestamp а при следующем запуске сравнивать сколько прошло времени.
Если я верно вас понял то вы имели ввиду это:
Код:
string timeStamp = GetTimestamp(DateTime."необходимаяфункция");
Но я к сожалению не совсем хорош в коде, по этому плохо понимаю как здесь правильно провести проверку прошло ли столько то минут и можно ли снова продолжать работу шаба.
 

Veterinar

Client
Регистрация
01.07.2016
Сообщения
194
Благодарностей
22
Баллы
18
Можно создавать файл с содержимым timestamp а при следующем запуске сравнивать сколько прошло времени.
Все же попробовал немного код составить, но не получил нужного результата.
Код:
DateTime currentTime = DateTime.Now;
TimeSpan pauseMin = TimeSpan.FromMinutes(1);
TimeSpan compare = currentTime + pauseMin;
if (currentTime >= compare)
return null;
Возможно проблема как раз в этой части:
Код:
TimeSpan compare = currentTime + pauseMin;
Код постоянно зацикливается и приплюсовывает одну минуту, из-за этого if не может нормально пройти, пока не знаю как решить эту проблему, если я вообще изначально нормально написал код.
 

Veterinar

Client
Регистрация
01.07.2016
Сообщения
194
Благодарностей
22
Баллы
18
Может если создать стопФайл и ориентироваться на его дату создания можно будет сделать это боле корректно.
 

VerBin

Client
Регистрация
28.05.2016
Сообщения
555
Благодарностей
457
Баллы
63
Набросал на скорую руку.
Решение не самое красивое, все можно сделать куда элегантнее, для наглядности подойдет.

0) В начале шаблона осуществляем проверку на существование файла со временем.

1) Если файл не существует:
Выполняем весь шаблон.
В конце шаблона должен быть выполнен кубик C# для фиксации текущего времени в файле:
Код:
DateTime now = DateTime.Now;
return now.ToString();
Результат с переменной сохраняем в текстовом файле.

2) Если файл существует:
Читаем значение из файла в переменную Current
Затем осуществляем проверку кубиком на C#:
Код:
string input = project.Variables["Current"].Value;
DateTime current;
DateTime.TryParse(input, out current);
DateTime now = DateTime.Now;
int result = DateTime.Compare(last.AddMinutes(1), now);
if (result > 0)
    return "Выполнять шаблон еще рано";
else
    return "Уже пора запускать";
В метод last.AddMinutes(1) добавь свое количество минут для ожидания.
 
Последнее редактирование:
  • Спасибо
Реакции: Veterinar

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