Celery cube
Project description
Celery integration with CubicWeb
Getting Started
Enable the ‘celery’ cube in your myapp cubicweb instance:
$ cubicweb-ctl shell myapp entering the migration python shell just type migration commands or arbitrary python code and type ENTER to execute it type "exit" or Ctrl-D to quit the shell and resume operation >>> add_cube('celery') >>> ^D
If needed, configure the broker_url in all-in-one.conf. By default, and only when using a postgresql database, the trunk transport will be used for the broker; make sure it is installed.
Write a task:
from cubicweb_celery import app @app.cwtask def ping(self): return 'pong' @app.cwtask def users(self): return [str(x[0]) for x in self.cw_cnx.execute('String L WHERE U login L')]
or as a class:
from cubicweb_celery import app class MyTask(app.Task): need_cnx = True # if false (the default), self.cw_cnx will not be set # before running the task def run(self): self.cw_cnx.execute('Any X WHERE ...')
Then start a celery worker:
celery -A cubicweb_celery -i INSTANCE_NAME worker [ --beat ]
Then you can make the worker execute a task by calling it, eg. from an Operation. You may also run a task from a cubicweb-ctl shell:
$ cubicweb-ctl shell myapp >>> from cubes.myapp.sobjects import ping, users >>> print ping.delay().wait() 'pong' >>> print users.delay().wait() ['anon', 'admin']
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
cubicweb_celery-1.1.1.tar.gz
(8.1 kB
view hashes)
Built Distribution
Close
Hashes for cubicweb_celery-1.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2b5b21be690ee601348c483cadad370b85d9996952cfd3038c76534890f8b4b9 |
|
MD5 | 1b6cb093f66b1a393e81ac1fee8b86c8 |
|
BLAKE2b-256 | 7476e1d9144d6d1a513d177b88a32ed2255fa1b059d1a0d9dcfc1dd23685a062 |