schedule rule for one issue

Напишу на русском)

У меня есть два проекта, их обрабатывают сотрудники. Я хочу проверить запущены ли задачи в проектах у пользователей и, если кто-то не работает, кинуть ему сообщение в jabber

schedule rule NotifToNeedWork
// каждые 5 минут с 9 до 17-55
cron: 0 0/5 09-17 * * ? [for all issues] {
// bool есть ли задачи
  var have_issues = false;
// bool есть ли запущенные задачи
  var have_run_issue = false;
// int кол-во задач
  var count = 0;
// по каждому юзеру в группе
  for each user in {group: Support}.getUsers() {
// считаем, что задач нет
    have_issues = false;
// вытянем его задачи
    for each my_issue in user.getIssues(Everything, "проект: SupportProject Исполнитель: я Статус задачи: -Закрыта) {
// задачи есть
      have_issues = true;
      if (my_issue.Timer == {В работе}) {
// есть задачи рабочие
        have_run_issue = true;
      }
// поссчитаем все задачи
      count = count + 1;
    }
     // если задач не нашли
    if (have_issues == false) {
// сбросим счетчик
      count = 0;
// возьмем задачи из другого проекта, над которыми работаем
      for each my_issue in user.getIssues(Everything, "проект: {Внутренние задачи} Ответственные: я Статус: {В работе}") {
// есть такие
        have_issues = true;
      }
// поссчитаем все, что есть
      for each my_issue in user.getIssues(Everything, "проект: {Внутренние задачи} Ответственные: я Статус: -Закрыта") {
        count = count + 1;
      }
       // если мы бездельники, а задачи есть
      if (have_issues == false && count > 0) {
        user.sendJabber(user.fullName + ", сейчас на Вас не назначены основные задачи и Вы не заняты внутренними задачами. Стоит взять в работу одну из " + count + " внутренних задач.");
      }
    } else { // мы нашли задача в основном проекте
// мы работаем над задачами в основном проекте?
      if (have_run_issue == false) {
// не хорошо, нужно бы поработать
        user.sendJabber(user.fullName + ", сейчас Вы не заняты основными задачами. Стоит взять в работу одну из " + count + " задач");
      }
    }
  }
}

все работает прекрасно, НО! [for all issues] дает нам столько уведомлений, сколько задач у нас имеется в принципе. С таким подходом, не запустил задачу - получи 200 сообщений в jabber. А так как пытки над людьми запрещены конвенцией ООН, прошу Вас подказать мне, как schedule rule запустить 1 раз. Очень прошу. Спасибо.
3 comments
Comment actions Permalink
Пока что выкрутился так:
1. Создаем и сразу закрываем тестовую задачу с описанием "dummy_for_scheduler_rule"
2. cron: 0 0/5 09-17 * * ? [issue.desc == "dummy_for_scheduler_rule"] {

Но, может есть какое-то красивое решение?
0
Comment actions Permalink
I don't know a better way. Please see also JT-10724.
0
Comment actions Permalink
Thanks for the answer!
0

Please sign in to leave a comment.