gramex.services.scheduler
¶
Gramex scheduling service
Task(name, schedule, threadpool, ioloop=None)
¶
Run a task. Then schedule it at the next occurrance.
Create a new task based on a schedule.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
name |
str
|
Name of the schedule |
required |
schedule |
dict
|
Schedule configuration (see below) |
required |
threadpool |
ThreadPoolExecutor
|
Threadpool to use for running the task |
required |
ioloop |
tornado.ioloop
|
IOLoop to run the task on. If None, use main IOLoop |
None
|
Schedule configurations are dicts with these keys:
minutes
: minutes to run at (as per cron spec below)hours
: hours to run at (as per cron spec below)dates
: dates to run at (as per cron spec below)months
: months to run at (as per cron spec below)weekdays
: weekdays to run at (as per cron spec below)years
: years to run at (as per cron spec below)utc
: True for UTC time zone, else local time zone (default: False)every
: interval to run at (e.g. “3h 30m” or “90s”)startup
:True
to run at startup,'*'
to run on every config changethread
:True
to run in a separate thread (default: False)
The minutes, hours, dates, months, weekdays, years keys can take these values:
*
: use all possible values, i.e. every minute, every hour, etc.3,4,5
: use multiple values separated by commas1-5
: use range of values*/4
: repeat every 4th time, i.e. every 4th minute, 4th hour, etc.8-16/2
: repeat every 2nd time between 8 to 16. Same as 8,10,12,14,16
To specify a schedule, you must specify at least one of these:
minutes
,hours
,dates
,months
,weekdays
,years
every
startup
Source code in gramex\services\scheduler.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 |
|
run(args, kwargs)
¶
Run task. Then set up next callback.
Source code in gramex\services\scheduler.py
128 129 130 131 132 133 134 135 136 |
|
stop()
¶
Suspend task, clearing any pending callbacks
Source code in gramex\services\scheduler.py
138 139 140 141 142 143 |
|
call_later()
¶
Schedule next run automatically. Clears any previous scheduled runs
Source code in gramex\services\scheduler.py
145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 |
|