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',
default_time_pattern='0 0 * * *',
command='rm -rf /data/*',
enabled=False),
MaraJob(id='nightly',
description="Nightly run of the BI system",
default_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
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.6-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d09bd6913dd83f09d7873a8204b3f1b041d55bb599b45ba0dc8423f2f6696825 |
|
MD5 | 9d1e5c03fedc99458689c8c5b11e9beb |
|
BLAKE2b-256 | c99b0a29bd4b5d352650b8c66a9ab98e22ab0aee322e14d0308e141ac58d7731 |