Остановить (удалить) проект в планировщике.

Evgeny76

Client
Регистрация
11.09.2015
Сообщения
192
Благодарностей
85
Баллы
28
Всем привет!
Не могу сообразить как можно остановить или удалить проект в планировщике при достижении определенного условия. Запустить проект по сигналу в планировщике есть, а как остановить его нет.
Задача следующая: на сайте появляется определенный текст, нужно что бы при появлении этого текста мне приходило смс оповещение. Делаю так: в планировщик добавляю задание с периодичностью 10 минут на бесконечное выполнение. Проект при любом исходе завершается, но если есть нужная информация, то он идет по ветке отправления смс. И после первого отправления его нужно удалить с планировщика, иначе он мне будет их слать каждые 10 минут пока не закончится баланс.

P.S. можно конечно зациклить шаблон что бы завершался при нужном мне условии, но так не хотелось бы делать.
 

sanya

Client
Регистрация
08.09.2015
Сообщения
184
Благодарностей
49
Баллы
28
Код:
var list_shablon=project.Lists["shablony"];//список с полными путями к шаблонам
var tasksList = new List<string>(ZennoPoster.TasksList);//список проектов в зеннопостер

Regex reg_id = new Regex(@"(?<=<ProjectFileLocation>).*(?=</ProjectFileLocation>)");//регуляр для поиска пути в xml zennoposter
string id_project="";
string good=list_shablon.Count+" \r\n";
// проходим по списку шаблонов
for (int j = 0; j < list_shablon.Count; j++)
{     
       // проходим по списку проектов
      for (int i = 0; i < tasksList.Count; i++)
       {
         var source = tasksList[i];
          //проверяем регуляркой на путь проекта
          Match match = reg_id.Match(source);
          if (match.Success)
            {
               id_project=match.Groups[0].Value;
                //good=good+list_shablon[j]+"="+id_project+" \r\n";
               
               if(id_project.CompareTo(list_shablon[j])==0)
                  {                   
                  good=good+list_shablon[j]+" "+" \r\n";
                   
                   var xpath = "Task/Id";
                   // Gets guid string from task data
                   var doc = new System.Xml.XmlDocument();
                   doc.LoadXml("<Task>" + source + "</Task>");
                   string result;
                   var node = doc.SelectSingleNode(xpath);
                   if (node != null)
                       result = node.InnerXml;
                   else
                       throw new InvalidDataException(string.Format("{0} is null", xpath));
                   Guid id;
                   // Parse guid
                   if (Guid.TryParse(result, out id))
                    {  // If ok, останавливаем проект
                      ZennoPoster.InterruptTask(id);
                      Thread.Sleep(2000);//пауза
                      //запускаем проект
                      ZennoPoster.StartTask(id);
                    }
                  else
                      throw new FormatException(string.Format("{0} is not guid", result));

       
                  }
            }
   
   }
}
return good;
Когда-то делал такой снипет по рестарту проектов, брал из списка проекты которые нужно перезапустить, там по коду поймете что убрать
 
  • Спасибо
Реакции: Evgeny76

Evgeny76

Client
Регистрация
11.09.2015
Сообщения
192
Благодарностей
85
Баллы
28
Спасибо, завтра попробую, сегодня нет возможности.
 

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