Carotte is a very lightweight Celery on zmq
Project description
Carotte is a very lightweight Celery on zmq.
Install
pip install carotte
Getting started
Create your app.py:
from carotte import Carotte my_app = Carotte() @my_app.task def hello_world(name): return 'Hello %s!' % name
Run your worker (default on “tcp://127.0.0.1:5550”):
carotte worker --app app:my_app
Run tasks:
>>> from app import hello_world >>> t = hello_world.delay(['Carotte']) >>> t.success >>> True >>> t.result >>> 'Hello Carotte!'
Or run a client (if don’t have tasks on your system):
>>> from carotte import Client >>> client = Client() >>> task = client.run_task('hello_world', ['Carotte']) >>> task.success >>> True >>> task.result >>> 'Hello Carotte!'
Scheduled tasks
Carotte is not a scheduler, its an asynchronous tasks runner. But you can really set up scheduled tasks with schedule.
Your app.py:
import requests from carotte import Carotte my_app = Carotte() @app.task def get(url): r = requests.get(url) if r.status_code != 200: # Do stuff return False return True
Your scheduler.py:
import time import schedule from app import get schedule.every(10).seconds.do(get, 'http://google.com') while True: schedule.run_pending() time.sleep(1)
Run your worker and your scheduler:
carotte worker --app app:my_app python scheduler.py
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
carotte-0.2.2.tar.gz
(9.1 kB
view details)
File details
Details for the file carotte-0.2.2.tar.gz
.
File metadata
- Download URL: carotte-0.2.2.tar.gz
- Upload date:
- Size: 9.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: Python-urllib/3.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5acf330a019d9495e4b1f96d7fef5b3504b0e73682d1e9471ab2cd5010c2473 |
|
MD5 | fdbe6cdd6b7e275190bacb6b40545a7c |
|
BLAKE2b-256 | 57d892c98119f568f4f934f5d0d94df84338d3270155f8481bc4122c0f216ffb |