selderij.schema ‘ s¶

selderij.schema ‘s¶

schema’ s bepalen de intervallen waarop periodieke taken moeten worden uitgevoerd.

exceptioncelery.schedules.ParseException

verhoogd door crontab_parser wanneer de invoer niet kan worden ontleed.

klassecelery.schedules.schedule(run_every=None, relative=False, nowfun=None, app=None)¶

schema voor periodieke taak.

Parameters:

  • run_every-Interval in seconden (of een timedelta).
  • relatief – indien ingesteld op True zal de looptijd worden afgerond op de resolutie van het interval.
  • nowfun-functie die de huidige datum en tijd retourneert (klasse:~datetime.datetime).
  • app – selderij app instance.

apphuman_secondsis_due(last_run_at)¶

geeft een tupel van twee items terug (is_due, next_time_to_check),waarbij de volgende controletijd in seconden is.

bijv.

  • (True, 20), betekent dat de taak nu moet worden uitgevoerd, en de volgende keer om te controleren is binnen 20 seconden.
  • (onwaar, 12.3), betekent dat de taak is niet te wijten, maar dat de planner opnieuw moet controleren in 12,3 seconden.

de volgende keer dat wordt gecontroleerd wordt gebruikt om energie/cpu cycli te besparen,het hoeft niet nauwkeurig te zijn, maar zal de precisie van uw schema beïnvloeden. U moet ook rekening houden met de waarde van CELERYBEAT_MAX_LOOP_INTERVAL,die bepaalt hoeveel seconden de planner kan slapen tussen het opnieuw controleren van de periodieke taakintervallen. Dus als je een taak die schema verandert tijdens runtime dan uw next_run_atcheck zal beslissen hoe lang het zal duren voordat een wijziging in theschedule van kracht wordt. Het maximale lusinterval duurt voor de volgende controle op de geretourneerde waarde.

Scheduler Max interval variantie

het standaard max lus interval kan variëren voor verschillende schedulers.Voor de standaard scheduler is de waarde 5 minuten, maar voor bijvoorbeeld de django-seldery database scheduler is de waarde 5 seconden.

maybe_make_aware(dt)¶nowrelative= False¶remaining_estimate(last_run_at)¶secondsto_local(dt)¶tzutc_enabled¶ classcelery.schedules.crontab(minute=’*’, hour=’*’, day_of_week=’*’, day_of_month=’*’, month_of_year=’*’, nowfun=None, app=None)¶

A crontab can be used as the run_every value of aPeriodicTask to add cron-like scheduling.

net als een cron-taak kunt u tijdseenheden opgeven van wanneer u de taak wilt uitvoeren. Het is een redelijk volledige implementatie van de functies van cron, dus het moet een eerlijke mate van scheduling behoeften bieden.

u kunt een minuut, een uur, een dag van de week, een dag van de maand en/of een maand in het jaar opgeven in een van de volgende formaten:

minute

  • Een (lijst van) gehele getallen van 0-59 die de minuten van een uur weergeven waarop uitvoering moet plaatsvinden; of
  • een tekenreeks die een crontab-patroon vertegenwoordigt. Dit kan prettyavanced worden, zoals minute= ‘* / 15 ‘ (voor elk kwartaal) ofminute=’1,13,30-45,50-59/2″.

hour

  • Een (lijst van) gehele getallen van 0-23 die de uren van een dag weergeven waarop uitvoering moet plaatsvinden; of
  • een tekenreeks die een crontab-patroon vertegenwoordigt. Dit kan Pretty advanced worden, zoals hour= ‘* / 3′(voor elke drie uur) ofhour=’ 0,8-17/2 ‘ (om middernacht, en om de twee uur tijdens kantooruren).

day_of_week

  • Een (lijst van) gehele getallen van 0-6, waarbij zondag = 0 en zaterdag =6, die de dagen van een week vertegenwoordigen die de uitvoering zou moeten plaatsvinden.
  • een tekenreeks die een crontab-patroon voorstelt. Dit kan mooi geavanceerd worden, zoals day_of_week= ‘Ma-Vr’ (alleen voor weekdagen).(Let op dat day_of_week= ‘* / 2’ niet letterlijk betekent ‘elke twee dagen’, maar ‘elke dag die deelbaar is door twee’!)

day_of_month

  • een (lijst van) gehele getallen van 1-31 die de dagen vertegenwoordigt van de maand dat de uitvoering moet plaatsvinden.
  • een tekenreeks die een crontab-patroon voorstelt. Dit kan Pretty advanced worden, zoals day_of_month= ‘2-30 / 3′(voor elke evengenummerde dag) of day_of_month=’ 1-7,15-21 ‘ (voor de eerste en derde weken van de maand).

month_of_year

  • een (lijst van) gehele getallen uit 1-12 die de maanden van het jaar aangeeft waarin uitvoering kan plaatsvinden.
  • een tekenreeks die een crontab-patroon voorstelt. Dit kan Pretty advanced worden, zoals month_of_year= ‘* / 3′(voor de eerste maand van elk kwartaal) of month_of_year=’ 2-12/2 ‘ (voor elke evengenummerde maand).

nowfun

functie die de huidige datum en tijd retourneert(datetime).

app

De instantie van de selderij-app.

Het is belangrijk om te beseffen dat elke dag waarop uitvoering moet plaatsvinden, moet worden weergegeven door vermeldingen in alle drie de dag-en maandattributen. Bijvoorbeeld, als day_of_week 0 is en day_of_month elke zevende dag, zullen alleen maanden die op zondag beginnen en ook in het month_of_year attribuut zitten, uitvoeringsgebeurtenissen hebben. Of, day_of_week is 1 en day_of_month is ‘1-7, 15-21’ betekent elke eerste en derde maandag van elke maand aanwezig in month_of_year.

is_due(last_run_at)¶

geeft tupel van twee items terug (is_due, next_time_to_run),waarbij de volgende keer om te draaien in seconden is.

zie celery.schedules.schedule.is_due() voor meer informatie.

nowremaining_delta(last_run_at, tz=None, ffwd=<klasse ‘selderij.utils.timeutils.ffwd ‘>remaining_estimate(last_run_at, ffwd=<klasse ‘selderij.utils.timeutils.ffwd ‘>)¶

geeft terug wanneer de periodieke taak als volgende moet worden uitgevoerd als een timedelta.

classcelery.schedules.crontab_parser(max_=60, min_=0)¶

Parser voor crontab-expressies. Elke uitdrukking van de vorm ‘groepen'(zie BNF grammatica hieronder) wordt geaccepteerd en uitgebreid tot een verzameling getallen.Deze getallen vertegenwoordigen de tijdseenheden waarop de crontab torun nodig heeft:

digit :: '0'..'9'dow :: 'a'..'z'number :: digit+ | dow+steps :: numberrange :: number ( '-' number ) ?numspec :: '*' | rangeexpr :: numspec ( '/' steps ) ?groups :: expr ( ',' expr ) *

de parser is een algemeen gebruik, handig voor het ontleden van uren, minuten en day_of_week expressies. Voorbeeld gebruik:

>>> minutes = crontab_parser(60).parse('*/15')>>> hours = crontab_parser(24).parse('*/4')>>> day_of_week = crontab_parser(7).parse('*')

Het kan ook day_of_month en month_of_year expressies ontleden indien geïnitialiseerd met een minimum van 1. Voorbeeld gebruik:

>>> days_of_month = crontab_parser(31, 1).parse('*/3')>>> months_of_year = crontab_parser(12, 1).parse('*/2')>>> months_of_year = crontab_parser(12, 1).parse('2-12/2')

de maximaal mogelijke uitgevouwen waarde wordt gevonden door de formule:

max_ + min_ - 1

uitzondering ParseException

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.