2012-03-13 16 views
7

Chcę utworzyć zadanie cron, które jest uruchamiane co X tygodni i w określone dni tygodnia. na przykład: biegaj co 2 tygodnie o północy w każdą niedzielę i poniedziałek.Cron zadanie uruchamiane co X tygodni iw określone dni

Wyrażenie cron jest przechowywane dla każdego "planu" i używam funkcji ncrontab w SQL Server 2008 do generowania dat danego wyrażenia cron.

Czy jest to wyrażenie? lub nawet dołączyć do kilku wyrażeń?

Próbowałem użyć następującego wyrażenia, ale zawsze daje te same dni w miesiącach

0 0 1/14 * * 

2012-01-01 00:00:00.000 
2012-01-15 00:00:00.000 
2012-01-29 00:00:00.000 
2012-02-01 00:00:00.000 
2012-02-15 00:00:00.000 
2012-02-29 00:00:00.000 

EDIT:
Szukałem nawrotu co x dni/tygodni i głównym Problem z cronem polega na tym, że za każdym razem resetuje on powtarzanie do pierwszego dnia miesiąca. na przykład, jeśli zaczynam powtarzanie na 29. na każde 3 dni, następnym wystąpieniem będzie 1 dzień następnego miesiąca.

mam zaniedbane crona do następnego rozwiązania: http://www.codeproject.com/Articles/20343/Recurring-Date-Generator-with-Pattern-Coding

Odpowiedz

1

spróbować 0 0 * * 0/2,1/2

0 i 1 są niedzielę i poniedziałek, a /2 jest 'każdy inny'

EDIT:

Po dalszych badaniach nad cronem powyższe jest nieprawidłowe. se /2 wskazuje krok (co drugą wartość), więc 0/2 jest równoważne 0,2,4,6, a 0/2,1/2 jest równoważne 0,1,2,3,4,5,6,7, co tłumaczy, dlaczego widziałeś to interpretowane jako każdy dzień tygodnia.

W przykładzie powyżej 1/14 oznacza zaczynając od 1 miesiąca, przyrost o 14, otrzymując 1,15,29

takiej sytuacji, gdyby to było dla crontab * nix, to mogłeś być bardziej ziarnisty o harmonogramu, mając coś takiego jak 0 0 * * Sun,Mon check_if_should_run.sh && the_script_to_run.sh. Korzystając z Ncrontab, nie mogę wymyślić sposobu na skonfigurowanie scenariusza na każdy drugi tydzień.

+1

Próbowałem tego i powtarzałem się każdego dnia, zaczynając od niedzieli. Jeśli spróbuję 0 0 * * 0/2, to powtarzam się w każdą niedzielę i co dwa dni –

Powiązane problemy