Lets you manage cron jobs via mara
Project description
Mara Cron
Mini package for managing cron jobs via mara.
Installation
To use the library directly:
pip install mara-cron
Config of cron jobs
To configure cron jobs in mara you just need to add a new function MARA_CRON_JOBS
in your module or app in the __init__.py
file.
Here is a sample which has two jobs:
- the job
cleanup_data_folder
clears all data from the local folder/data/
. This job is by default disabled. - the job
nightly
runs the root pipeline at 01:00 o'clock each day
Note: The MaraJob job requires that you define the PATH
environment variable in your crontab. Cron by default uses just /usr/bin:/bin
which is not enough. I recommend using the distribution default e.g. /usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
.
def MARA_CRON_JOBS():
from mara_cron.job import CronJob, MaraJob
return [
CronJob(id='cleanup_data_folder',
description='Clean up the data folder',
time_pattern='0 0 * * *',
command='rm -rf /data/*',
enabled=False),
MaraJob(id='nightly',
description="Nightly run of the BI system",
time_pattern='0 1 * * *',
command='mara_pipelines.ui.run'),
]
Local config
Sample local config to activate crontab management in your mara app:
from mara_app.monkey_patch import patch
import mara_cron.config
# Activates mara_cron jobs. If not set all jobs are
# by default disabled and can only be activated via
# executing:
# flask mara_cron.enable --job-id "my_job_id"
patch(mara_cron.config.enabled)(lambda: True)
# Optional parameter to specify a mara instance name
# This is necessary to separate multiple environments running
# on the same user
patch(mara_cron.config.instance_name)(lambda: 'prod')
CLI
This package contains the following cli commands:
Command | Description |
---|---|
mara_cron.enable --job-id "my_job_id" [--module "module_name"] |
Enables a specific job regardless of the configuration. |
mara_cron.disable --job-id "my_job_id" [--module "module_name"] |
Disables a specific job. |
mara_cron.list-crontab |
Lists the current cron tab settings |
mara_cron.list-crontab --with-changes |
Lists the current cron tab including the changes not yet written |
mara_cron.write-crontab |
Writes all not published changes to the crontab |
mara_cron.clear-crontab |
Removes all mara jobs from the crontab. Note This applies to all instances !!! |
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for mara_cron-0.9.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ac479807378616ae965a1ba1aa7a5f0413cb133fdd61800a474a3b0c20fbcec8 |
|
MD5 | 8a68c4fbfdf4134a7b6dea191d2f0b27 |
|
BLAKE2b-256 | 9fb12b24c2b2b240a24feec1f2649595aa0469ced620a10ba46d76df89074d01 |