heavy_celery 0.3.0

Creator: codyrutscher

Last updated:

Add to Cart

Description:

heavy celery 0.3.0

managed celery task

Documentation
The full documentation is at https://heavy_celery.readthedocs.io.


Quickstart
Install heavy_celery:
pip install heavy_celery
Add it to your INSTALLED_APPS:
INSTALLED_APPS = (
...
'heavy_celery',
...
)


Features


settings.py
CELERY_DEFAULT_QUEUE = 'default'
CELERY_DEFAULT_EXCHANGE_TYPE = 'default'
CELERY_DEFAULT_ROUTING_KEY = 'default'

CELERY_QUEUES = (
Queue('default', Exchange('default'), routing_key='default'),
Queue('time_sensitive', Exchange('time_sensitive'), routing_key='time_sensitive_tasks'),
Queue('background', Exchange('background'), routing_key='background'),
)

CELERY_REVOKE = 'example.apps.sample.tasks.celery_revoke' # 適当なモジュールパスに変更
MIDDLEWARE += [
'heavy_celery.middlewares.GlobalRequestMiddleware',
]


example/apps/sample/tasks.py
@app.task()
def celery_revoke(task_id):
from celery.task.control import revoke
revoke(task_id, terminate=True)


cronの機能を使うために
from celery.schedules import crontab
from <project_name>.celery_conf import app
from heavy_celery.cron import spawner as _cron_scheduler

@app.task()
def cron_scheduler():
_cron_scheduler()

app.conf.beat_schedule = {
'cron_scheduler': {
'task': '<appname>.tasks.cron_scheduler',
'schedule': crontab(),
'args': (),
'options': dict(queue='time_sensitive', routing_key='time_sensitive_tasks'),
},
}


task定義の仕方
from heavy_celery import base

@app.task(base=base.Task)
def command(command_name, *args, **kw):
call_command(command_name, *args, **kw)


タスクの定期実行のやり方

TaskSignatureの追加



name : タスク名
description : タスク詳細
task_path : タスクパス e.g) apps.foo.tasks.example_task
args : タスクに渡す引数(yaml形式)
kwargs : タスクに渡すkw引数(yaml形式)
options : タスクのスケジュールオプション、どのQueueにいれるかとか
したみたいにしておけば、time_sensitiveのQueueで走るようになる



queue: time_sensitive
routing_key: time_sensitive_tasks




CronScheduleの追加



name : cronタスク名
description : cronタスク詳細
cron_expr : cron表記
task : TaskSignatureオブジェクト
max_run_count : 最大繰り返し回数




Running Tests
Does the code actually work?
source <YOURVIRTUALENV>/bin/activate
(myenv) $ pip install tox
(myenv) $ tox


Credits
Tools used in rendering this package:

Cookiecutter
cookiecutter-djangopackage



Development

$ cookiecutter https://github.com/pydanny/cookiecutter-djangopackage
mkvirtualenv–no−site−packagesheavycelery pip install tox twine
# test
$ make test-all
# release
You can't use 'macro parameter character #' in math modeYou can't use 'macro parameter character #' in math mode pip install readme_renderer # at first
You can't use 'macro parameter character #' in math modeYou can't use 'macro parameter character #' in math mode make release



History
0.1.0 (2017-07-06)

First release on PyPI.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.