How to start on-schedule rule?

It should write "test" on console every five seconds? But it's don't.

 

 

var entities = require('@jetbrains/youtrack-scripting-api/entities');

exports.rule = entities.Issue.onSchedule({
    title: 'Test_reviewer_notify',
    search: "#Unresolved",
    cron: '0/5 ? ? ? ? ?',
    guard: function(ctx) {
        return true;
    },
    action: function(ctx) {
        var issue = ctx.issue;
        console.log("test");
    },
    requirements: {
    }
});

6 comments
Comment actions Permalink
Official comment

Your cron expression is incorrect, cron has a different syntax.

In your case cron should be `0/5 * * * * ?`.

See more details and examples at http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html

Comment actions Permalink

Мария, здравствуйте!
Большое спасибо, помогло.
Я читал эту страницу, но у меня как-то не возникло полного понимания разницы между "*" и *?*. Первое — "любое", второе — что-то вроде "неважно". Не могли бы Вы пояснить принципиальную разницу?

0
Comment actions Permalink

Действительно, разница в том, что одно - "любое", а второе - "неважно" (иными словами, "разберись сам, cron"). Использование "?" на практике имеет смысл, например, тогда, когда вы определяете день. Четвёртый параметр - это день месяца, а шестой - день недели. Они напрямую связаны в том смысле, что один надо определить (он может быть конкретным значением), а второму выставить "неважно". Например:

"0 0 10 * * ?" - любой день месяца (в 10 утра), день недели неважен

"0 0 10 0/3 * ?" - каждый третий день месяца, день недели неважен

"0 0 10 ? * MON-FRI" - каждый будний день, день месяца не важен (потому что будные дни будут выпадать на разные дни месяца, и если указывать правила выбора для месяца и дня недели одновременно бесполезно)

По правилам крона, у вас всегда либо 4-й, либо 6-й параметр должны быть равны "?", остальные 5 - нет.

0
Comment actions Permalink

Понял, большое спасибо!

0
Comment actions Permalink

I've attempted to run a very similar test with the reminder workflow. I see nothing in console at all. To simplify, I created a test workflow with the below script:

 

var entities = require ('@ jetbrains / youtrack-scripting-api / entities');

exports.rule = entities.Issue.onSchedule ({
// TODO: give the rule a human-readable title
title: 'Test',
// TODO: define which issues are processed
search: '#Unresolved',
// TODO: set the schedule
// For format details refer to http://www.quartz-scheduler.org/documentation/quartz-2.x/tutorials/crontrigger.html
cron: '0 0/1 * 1/1 *? *',
guard: function (ctx) {
// TODO specify the conditions for executing the rule
return true;
},
action: function (ctx) {
console.log ("TEST");
var issue = ctx.issue;
// TODO: specify what to do at the scheduled time
},
requirements: {
// TODO: add requirements
}
});

 

 

Were you ever able to get yours to work?

 

0
Comment actions Permalink

Hi Jpalmer,

It looks like you have an incorrect cron expression. You need to write it as follows: '0 0/1 * 1/1 * ? *' (a space is missed)

0

Please sign in to leave a comment.