Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/boylegu/celery-task-tigger
A controllable timing task widgets with Celery
https://github.com/boylegu/celery-task-tigger
celery crontab periodic python python3 task
Last synced: about 2 months ago
JSON representation
A controllable timing task widgets with Celery
- Host: GitHub
- URL: https://github.com/boylegu/celery-task-tigger
- Owner: boylegu
- License: mit
- Created: 2016-05-23T10:39:18.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-06-21T05:40:30.000Z (over 7 years ago)
- Last Synced: 2024-10-14T09:16:51.793Z (3 months ago)
- Topics: celery, crontab, periodic, python, python3, task
- Language: Python
- Homepage:
- Size: 37.1 KB
- Stars: 55
- Watchers: 10
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
celery-task-tigger
====[![release](https://img.shields.io/badge/release-0.4-blue.svg)]()
[![license](https://img.shields.io/badge/license-MIT-blue.svg)]()
[![celery](https://img.shields.io/badge/celery-3%7C4-brightgreen.svg)]()A controllable timing task widgets with Celery
## About
As is known to all, Celery have a already provides periodic task and it's very perfit. But, Assume this case: After my task was called, I hope it's task can frequency of execution, and when celery task was started.
The above case, Periodic task is hard to practice, Becacuse it's depend on celery beat. ``celery-task-tigger`` do it over simple packaging or implement for solution to do it.
## Installation
~~~python
pip install celery-task-tigger~~~
## Useage
Assume you have aleady install celery and can do it.
### Bases
Option `max_times` is must be appoint.
~~~python
from celery_tasktigger.decorator import tigger_task@app.task(bind=True)
@tigger_task(max_times='forever') # forever is expressed unlimited time
def add(self, x, y):
return x + y~~~
### max_times
Option `max_times`: The maximum number of execute the task times.
Type: ***int***
> Note: The value ***'forever'*** is expressed unlimited time.
Example:
~~~python
@app.task(bind=True)
@tigger_task(max_times=3) # after execute 3 times, raise an exception
def add(self, x, y):
return x + y~~~
### countdown
Option `countdown`: You can also provide the countdown argument to execute.
Type: ***int***
Default: 1 (seconds)
Example:
~~~python
@app.task(bind=True)
@tigger_task(max_times='forever', countdown=3) # each execute in 3 seconds
def add(self, x, y):
return x + y~~~
OR
~~~python
@app.task(bind=True)
@tigger_task(max_times='forever')
def add(self, x, y, countdown=3): # you also can define formal parameter in task
return x + y~~~
## How To Calling Task
~~~~python
>> from example import add
>> add.apply_async((1,2))
~~~~you can also delayed execute task, as follow:
~~~~python
>> from example import add
>> add.apply_async((1,2), countdown=4) # after 4 seconds, begin start task
# add.apply_async((1,2),{'countdown': 2} countdown=4) ## after 4 seconds, begin start task and interval in 2 seconds
~~~~> About Celery Task, Please see below for details:
> [Celery Calling-Tasks Document](http://docs.jinkan.org/docs/celery/userguide/calling.html)## How To Stop
if you appoint `max_times='forever'` or provides the bigger values of max_times, you must stop it in programe.
~~~~python
>> result = add.apply_async((1,2))
>> result.revoke()
or
>> from mycelery import app
>> app.control.revoke('task_id')
~~~~> See below for details:
> [Celery Document——FAQ](http://docs.jinkan.org/docs/celery/faq.html#can-i-cancel-the-execution-of-a-task)## Some screenshots
![](http://i1.piimg.com/536217/1ae9af3a274de4c7.gif)
## Features
- 100% full compatible with Celery 3 | 4
- the frequency of execution for task
- ...and many other stuff (o,0)
## Author
- Boyle Gu