mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-24 20:24:05 -08:00
✨ Make it possible to trigger all X minutes/hours
This commit is contained in:
parent
2f56561bff
commit
8f25303928
|
@ -134,6 +134,14 @@ export class ActiveWorkflows {
|
||||||
cronTimes.push(`${Math.floor(Math.random() * 60).toString()} * * * * *`);
|
cronTimes.push(`${Math.floor(Math.random() * 60).toString()} * * * * *`);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (item.mode === 'everyX') {
|
||||||
|
if (item.unit === 'minutes') {
|
||||||
|
cronTimes.push(`${Math.floor(Math.random() * 60).toString()} */${item.value} * * * *`);
|
||||||
|
} else if (item.unit === 'hours') {
|
||||||
|
cronTimes.push(`${Math.floor(Math.random() * 60).toString()} 0 */${item.value} * * *`);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
for (parameterName of parameterOrder) {
|
for (parameterName of parameterOrder) {
|
||||||
if (item[parameterName] !== undefined) {
|
if (item[parameterName] !== undefined) {
|
||||||
|
|
|
@ -55,27 +55,31 @@ export class Cron implements INodeType {
|
||||||
options: [
|
options: [
|
||||||
{
|
{
|
||||||
name: 'Every Minute',
|
name: 'Every Minute',
|
||||||
value: 'everyMinute'
|
value: 'everyMinute',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Every Hour',
|
name: 'Every Hour',
|
||||||
value: 'everyHour'
|
value: 'everyHour',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Every Day',
|
name: 'Every Day',
|
||||||
value: 'everyDay'
|
value: 'everyDay',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Every Week',
|
name: 'Every Week',
|
||||||
value: 'everyWeek'
|
value: 'everyWeek',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Every Month',
|
name: 'Every Month',
|
||||||
value: 'everyMonth'
|
value: 'everyMonth',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Every X',
|
||||||
|
value: 'everyX',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
name: 'Custom',
|
name: 'Custom',
|
||||||
value: 'custom'
|
value: 'custom',
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
default: 'everyDay',
|
default: 'everyDay',
|
||||||
|
@ -94,7 +98,8 @@ export class Cron implements INodeType {
|
||||||
mode: [
|
mode: [
|
||||||
'custom',
|
'custom',
|
||||||
'everyHour',
|
'everyHour',
|
||||||
'everyMinute'
|
'everyMinute',
|
||||||
|
'everyX',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -113,7 +118,8 @@ export class Cron implements INodeType {
|
||||||
hide: {
|
hide: {
|
||||||
mode: [
|
mode: [
|
||||||
'custom',
|
'custom',
|
||||||
'everyMinute'
|
'everyMinute',
|
||||||
|
'everyX',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -196,6 +202,48 @@ export class Cron implements INodeType {
|
||||||
default: '* * * * * *',
|
default: '* * * * * *',
|
||||||
description: 'Use custom cron expression. Values and ranges as follows:<ul><li>Seconds: 0-59</li><li>Minutes: 0 - 59</li><li>Hours: 0 - 23</li><li>Day of Month: 1 - 31</li><li>Months: 0 - 11 (Jan - Dec)</li><li>Day of Week: 0 - 6 (Sun - Sat)</li></ul>',
|
description: 'Use custom cron expression. Values and ranges as follows:<ul><li>Seconds: 0-59</li><li>Minutes: 0 - 59</li><li>Hours: 0 - 23</li><li>Day of Month: 1 - 31</li><li>Months: 0 - 11 (Jan - Dec)</li><li>Day of Week: 0 - 6 (Sun - Sat)</li></ul>',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Value',
|
||||||
|
name: 'value',
|
||||||
|
type: 'number',
|
||||||
|
typeOptions: {
|
||||||
|
minValue: 0,
|
||||||
|
maxValue: 1000,
|
||||||
|
},
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
mode: [
|
||||||
|
'everyX',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
default: 2,
|
||||||
|
description: 'All how many X minutes/hours it should trigger.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Unit',
|
||||||
|
name: 'unit',
|
||||||
|
type: 'options',
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
mode: [
|
||||||
|
'everyX',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
name: 'Minutes',
|
||||||
|
value: 'minutes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Hours',
|
||||||
|
value: 'hours'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default: 'hours',
|
||||||
|
description: 'If it should trigger all X minutes or hours.',
|
||||||
|
},
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
@ -236,6 +284,14 @@ export class Cron implements INodeType {
|
||||||
cronTimes.push(`${Math.floor(Math.random() * 60).toString()} * * * * *`);
|
cronTimes.push(`${Math.floor(Math.random() * 60).toString()} * * * * *`);
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
if (item.mode === 'everyX') {
|
||||||
|
if (item.unit === 'minutes') {
|
||||||
|
cronTimes.push(`${Math.floor(Math.random() * 60).toString()} */${item.value} * * * *`);
|
||||||
|
} else if (item.unit === 'hours') {
|
||||||
|
cronTimes.push(`${Math.floor(Math.random() * 60).toString()} 0 */${item.value} * * *`);
|
||||||
|
}
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
for (parameterName of parameterOrder) {
|
for (parameterName of parameterOrder) {
|
||||||
if (item[parameterName] !== undefined) {
|
if (item[parameterName] !== undefined) {
|
||||||
|
|
|
@ -77,6 +77,10 @@ export function getSpecialNodeParameters(nodeType: INodeType) {
|
||||||
name: 'Every Month',
|
name: 'Every Month',
|
||||||
value: 'everyMonth',
|
value: 'everyMonth',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: 'Every X',
|
||||||
|
value: 'everyX',
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: 'Custom',
|
name: 'Custom',
|
||||||
value: 'custom',
|
value: 'custom',
|
||||||
|
@ -99,6 +103,7 @@ export function getSpecialNodeParameters(nodeType: INodeType) {
|
||||||
'custom',
|
'custom',
|
||||||
'everyHour',
|
'everyHour',
|
||||||
'everyMinute',
|
'everyMinute',
|
||||||
|
'everyX',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -118,6 +123,7 @@ export function getSpecialNodeParameters(nodeType: INodeType) {
|
||||||
mode: [
|
mode: [
|
||||||
'custom',
|
'custom',
|
||||||
'everyMinute',
|
'everyMinute',
|
||||||
|
'everyX',
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
@ -200,6 +206,48 @@ export function getSpecialNodeParameters(nodeType: INodeType) {
|
||||||
default: '* * * * * *',
|
default: '* * * * * *',
|
||||||
description: 'Use custom cron expression. Values and ranges as follows:<ul><li>Seconds: 0-59</li><li>Minutes: 0 - 59</li><li>Hours: 0 - 23</li><li>Day of Month: 1 - 31</li><li>Months: 0 - 11 (Jan - Dec)</li><li>Day of Week: 0 - 6 (Sun - Sat)</li></ul>',
|
description: 'Use custom cron expression. Values and ranges as follows:<ul><li>Seconds: 0-59</li><li>Minutes: 0 - 59</li><li>Hours: 0 - 23</li><li>Day of Month: 1 - 31</li><li>Months: 0 - 11 (Jan - Dec)</li><li>Day of Week: 0 - 6 (Sun - Sat)</li></ul>',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Value',
|
||||||
|
name: 'value',
|
||||||
|
type: 'number',
|
||||||
|
typeOptions: {
|
||||||
|
minValue: 0,
|
||||||
|
maxValue: 1000,
|
||||||
|
},
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
mode: [
|
||||||
|
'everyX',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
default: 2,
|
||||||
|
description: 'All how many X minutes/hours it should trigger.',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
displayName: 'Unit',
|
||||||
|
name: 'unit',
|
||||||
|
type: 'options',
|
||||||
|
displayOptions: {
|
||||||
|
show: {
|
||||||
|
mode: [
|
||||||
|
'everyX',
|
||||||
|
],
|
||||||
|
},
|
||||||
|
},
|
||||||
|
options: [
|
||||||
|
{
|
||||||
|
name: 'Minutes',
|
||||||
|
value: 'minutes'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: 'Hours',
|
||||||
|
value: 'hours'
|
||||||
|
},
|
||||||
|
],
|
||||||
|
default: 'hours',
|
||||||
|
description: 'If it should trigger all X minutes or hours.',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
|
|
Loading…
Reference in a new issue