Skip to main content

Cronjobs for Wizards

Project description

# Cron Weasley
Cronjobs for Wizards

## What's up with the name?
It was either that or Cron Swanson

## Installation
This is on PyPi, so you can just

```sh
pip install cronweasley
```

## Usage

### Run jobs once
To start jobs, define them from anywhere, but likely the main/core function for your script

This will only run the jobs once and then quit. This is useful when you have the main script on a system level cron (usually set to `* * * * *`)

```py
from cronweasley.cronweasley import run_jobs
import asyncio

async def run():
r = await run_jobs(files=[
'tests.test_jobs.test1',
'tests.test_jobs.test2',
'tests.test_jobs.test3'
])
print(r)
loop = asyncio.get_event_loop()
loop.run_until_complete(run())
```

You can also pass a path to your jobs and Cron Weasley will find the jobs for you.

```py
from cronweasley.cronweasley import run_jobs
import asyncio

async def run():
r = await run_jobs(path='jobs')
print(r)
loop = asyncio.get_event_loop()
loop.run_until_complete(run())
```

### Run jobs continuously
Also built in is a function that will run your jobs forever, checking every 60 seconds for the next job.

```py
from cronweasley.cronweasley import run
run(files=[
'tests.test_jobs.test1',
'tests.test_jobs.test2',
'tests.test_jobs.test3'
])
```

Also supports passing a path, like `run_jobs()`
```py
from cronweasley.cronweasley import run
run(path='jobs')
```

The function `run()` will automatically start a loop for you, but you can also pass in your own loop, as well as your own interval in minutes

```py
from cronweasley.cronweasley import run
run(path='jobs', loop=loop, interval=1)
```



### Defining jobs
Place your jobs in a module (folder with an __init__.py file)
Currently this project uses crontab syntax for determining when a job should run.

```py
from cronweasley.cronweasley import run_at
import asyncio

@run_at('* * * * *')
async def a_job():
print('starting job "a"')
asyncio.sleep(5)
print('job "a" complete')
return 'job "a"'
```

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

cronweasley-1.1.0.tar.gz (3.4 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page