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_folderclears all data from the local folder/data/. This job is by default disabled. - the job
nightlyruns 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='pipelines 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:
# 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 (mara cron <command>):
| Command | Description |
|---|---|
enable --job-id "my_job_id" [--module "module_name"] |
Enables a specific job regardless of the configuration. |
disable --job-id "my_job_id" [--module "module_name"] |
Disables a specific job. |
schedule-job --job-id "my_job_id" |
Schedules a job to run in less than 1 minute. |
list-crontab |
Lists the current cron tab settings |
list-crontab --with-changes |
Lists the current cron tab including the changes not yet written |
write-crontab |
Writes all not published changes to the crontab |
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 Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mara-cron-0.12.0.tar.gz.
File metadata
- Download URL: mara-cron-0.12.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5804901c695047779e4a214e56c6b3372e521606923926f3c121b3a09402a350
|
|
| MD5 |
4e43aa52312a5b105a97525f92d941f3
|
|
| BLAKE2b-256 |
9c9262d414e2809a6b48ff74bbef08c498c98a9e3065fe7a63945227c0ef7231
|
File details
Details for the file mara_cron-0.12.0-py3-none-any.whl.
File metadata
- Download URL: mara_cron-0.12.0-py3-none-any.whl
- Upload date:
- Size: 12.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8b24a8aaf2f1de80eda6f8c08842c0282fe9fceabd7b2353ef37c8b89945e75a
|
|
| MD5 |
b4a51bed31cbe5e275c8f13132691434
|
|
| BLAKE2b-256 |
3f2a63b4d633d2fb22c5fbd6eccbded06690a2b732d716af87ac70475e8f7c23
|