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-0.6.0.tar.gz
(8.1 kB
view hashes)
Built Distribution
Close
Hashes for cubicweb_celery-0.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1134bb35e8876144a0ce3a06f61747af7015b807e343cec69c180388803139f4 |
|
MD5 | 3d3db9d10a5e55cdc771e22ec1cc5c45 |
|
BLAKE2b-256 | c6572a433f210a3ac08e60f9bdb4aa444f3d9cabde93849a08d9bedf0955d7e2 |