Code to facilitate creation of services and their integration to Vesta Service Gateway.
This package offers helper modules for Vesta services working in a distributed Service architecture. The work being executed by these services might be an annotation process or a form of conversion process taking a significant amount of time thereby benefiting from a distributed processing system with a REST interface.
Messages are communicated through a Celery distributed processing queue system. Celery can be configured to run with various backends such as RabbitMQ or Reddis. It is mainly meant to work with the Vesta Service Gateway .
Requirements / installation
This package uses Python version 2.x.x but should be compatible with Py3K. Tox tests are run regurlarly through the TravisCI on github. See the tox.ini configuration file.
You can install the package from the Python package index such as:
pip install VestaService
Alternatively one can install this package from source such as:
pip install git+https://github.com/crim-ca/Service
Which should install all requirements such as Celery.
You can also install from a cloned version.
See the documentation for pip for more installation use cases.
Pull requests are most welcome. Please ensure you follow pep8 for any modifications.
- Really added Celery integration to sentry agent
- Added Celery integration for sentry agent.
- Uses sentry agent for bug reporting. See sentry documentation.
- Changing version of requests to add flexibility.
- Fix handling of service exception messages with UTF-8 content.
- Add a Report class normalizing format of execution reports.
- Add argument permitting annotation uploads in ZIP format.
- Using the package requests[security] rather than requests to avoid download errors with python versions < 2.7.9
- For the download, passing the timeout and the max_try in parameters. Using shutil.copyfileobj to write file on disk
- When sending a task, queue name must be given.
- Honors a new key value called callback_url which is called at the end of a task.
- py3k compatible
- First release