Проект планирует сам себя

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Всем привет!

Разбираюсь с методом SetSchedulerSettings. Необходимо, чтобы проект поставил сам себя в расписание, используя переменное значение отсрочки в минутах (берем из проекта из переменной WaitTime). Написал следующую конструкцию:

var datetime = DateTime.Now.AddMinutes(project.Variables["WaitTime"].Value).ToString(DD.MM.YYYY hh:mm:ss);//беру текущие дату/время в нужном формате

var settings =
@"<StartDate>"+datetime+"</StartDate>
<EndDate>"+datetime+"</EndDate>
<RepetitionCount>1</RepetitionCount>
<ScheduleType>EveryMinutes</ScheduleType>
<RepeatType>FinishAfter</RepeatType>
<ActivateTime>"+datetime+"</ActivateTime>
<ActivateWorkTime>"+datetime+"</ActivateWorkTime>
<IsActive>True</IsActive>
<NumberOfTries>1</NumberOfTries>
<Minutes>0</Minutes>
<Days>0</Days>
<LastScheduleDate>"+datetime+"</LastScheduleDate>
<IsClearSucces>False</IsClearSucces>";
// Set the setting to first task with known name
var name = project.Variables["Name"].Value;
ZennoPoster.SetSchedulerSettings(name, settings);

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

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
В WaitTime что лежит?

DateTime.Now.AddMinutes там тип добавляемого значения double, а вы добавляете string - project.Variables["WaitTime"].Value
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Как я и предполагал. Переписал первую строку следующим образом:

var datetime = DateTime.Now.AddMinutes(Convert.ToDouble(project.Variables["HaveToWait"].Value)).ToString(DD.MM.YYYY hh:mm:ss);

Все равно не работает
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Еще раз повторюсь, что лежит в WaitTime?
Число?
Или может время?
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Может не нравится формат времени.

Попробуйте так.

Код:
var dt = DateTime.Now.AddMinutes(double.Parse(project.Variables["HaveToWait"].Value));
var datetime= string.Format("{0}/{1}/{2} {3}:{4}:{5}", dt.Month, dt.Day, dt.Year, dt.Hour, dt.Minute, dt.Second);
Чтобы формат времен был такой 12/19/2015 22:34:04 месяц/число/год время
 

Moadip

Client
Регистрация
26.09.2015
Сообщения
509
Благодарностей
824
Баллы
93
Потестил:
Код:
var time = DateTime.Now + TimeSpan.FromDays(10);
var str = string.Format("{0}/{1}/{2} {3}:{4}:{5}", time.Month, time.Day, time.Year, time.Hour, time.Minute, time.Second);
var howMuch = 1; // сколько повторять

var settings =
string.Format(
@"<StartDate>{0}</StartDate>
<ShedulerOnDate>{0}</ShedulerOnDate>
<EndDate>{0}</EndDate>
<RepetitionCount>{1}</RepetitionCount>
<ScheduleType>EveryMinutes</ScheduleType>
<RepeatType>FinishAfter</RepeatType>
<ActivateTime>01/01/0001 00:00:00</ActivateTime>
<ActivateWorkTime>01/01/0001 00:00:00</ActivateWorkTime>
<IsActive>True</IsActive>
<NumberOfTries>0</NumberOfTries>
<Minutes>1</Minutes>
<Days>1</Days>
<LastScheduleDate>{0}</LastScheduleDate>
<NextScheduleDate>{0}</NextScheduleDate>
<IsClearSucces>True</IsClearSucces>"
,str, howMuch);

var name = "MultiThread";
ZennoPoster.SetSchedulerSettings(name, settings);
Все работает.))
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Спасибо, работает!
Было бы неплохо, если под операции добавления/удаления/планирования появились наборы экшенов.
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Заметил следующее - проект встает в планировщик, но не стартует в назначенное время.
Пробую руками - отвожу время старта на пару минут вперед, жду - старт не происходит.
 

Bullet

Client
Регистрация
16.12.2015
Сообщения
186
Благодарностей
19
Баллы
18
Похоже, проблема состоит в данных, находящихся в поле "Закончить к", не смотря на то, что активна опция "Закончить после". Провел эксперимент - создаю расписание с равными значениями "Начало" и "Закончить к" - запуск по расписанию производится.
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 715
Баллы
113
Настройки Остановки посмотрите. По ним тоже может не срабатывать
 

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