Я смотрю на систему, где кто-то добавил Cronjob, график которого выглядит так:

0 1/12 * * * doSomething

Чаще всего, если часть часов в расписании была */12 то она выполнялась бы каждые 12 часов.

Каково было бы ожидаемое поведение 1/12?

Запуск Ubuntu версии 12.04

2 ответа2

0

Другой ответ предполагает, что этот синтаксис указывает на приращение. Теперь я настроил тест с этим выражением 1/12 в поле минут :

1/12 * * * * date >> ~/crontest.tmp

Если он будет увеличиваться, то он будет работать в эти минуты каждого часа: 1, 13, 25, 37 и 49. Но результаты пока таковы:

Mon Aug 24 17:01:01 CEST 2015
Mon Aug 24 18:01:01 CEST 2015
Mon Aug 24 19:01:01 CEST 2015
Mon Aug 24 20:01:01 CEST 2015
Mon Aug 24 21:01:01 CEST 2015
Mon Aug 24 22:01:01 CEST 2015
Mon Aug 24 23:01:01 CEST 2015
Tue Aug 25 00:01:01 CEST 2015
Tue Aug 25 01:01:01 CEST 2015
Tue Aug 25 02:01:01 CEST 2015
Tue Aug 25 03:01:01 CEST 2015
Tue Aug 25 04:01:01 CEST 2015
Tue Aug 25 05:01:01 CEST 2015
Tue Aug 25 06:01:01 CEST 2015
Tue Aug 25 07:01:01 CEST 2015
Tue Aug 25 08:01:01 CEST 2015
Tue Aug 25 09:01:01 CEST 2015

Если бы вы использовали выражение типа */12 то оно выполнялось бы «каждую минуту, которая делится на 12»: 12, 24, 36, 48 (0 или 60 включены?)

Поэтому я предполагаю, что 1/12 будет «каждая 1-я минута каждого часа, которая делится на 12», что никогда не будет, поэтому оно будет возвращаться к «каждой 1-й минуте каждого часа».

И, таким образом, 1/12 в поле часов будет выполняться каждый день в 01:00.

0

Каково было бы ожидаемое поведение 1/12?

0 1/12 * * * doSomething

Это означает, что бегать в 1 час ночи, а затем каждые 12 часов (1,13, ...).


Специальные символы

/ - используется для указания приращений.

Например, 0/15 в поле секунд означает «секунды 0, 15, 30 и 45». И 5/15 в поле секунд означает «секунды 5, 20, 35 и 50».

Источник CronTrigger Учебник

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .