Skip to content

TopChef/TopChef

Repository files navigation

TopChef

Build Status

Documentation Status

Requirements Status

TopChef is an asynchronous task queue that allows posting jobs for services defined at runtime. Service contracts are enforced using JSON schema, and the functionality is exposed through a REST API. This project solves the problem of running and queueing remote procedure calls between computers over an HTTP layer.

Please report bugs, feature requests, and other issues to the issue tracker. For support, please open an issue in the issue tracker.

This project supports Python versions 3.5 and 3.6.

Running TopChef

The easiest way to run TopChef is via the docker container. To run this, install docker and run

    docker pull topchef/topchef

from the command line. This will download the latest build from the master branch of this repository. In order to run the container, run

    docker run -i -t -p <port>:80 topchef/topchef

Where <port> is the port on which you want the container to run. If you want to configure the application, pass in the required environment variables after an -e flag. For instance, to set the database URI, run

    docker run -i -t -p <port>:80 -e DATABASE_URI=<database_uri> topchef/topchef

The Docker container runs TopChef via Apache using mod_wsgi. If a database URI is not provided, the container will create its own SQLite database inside the container.

The Flask Development Server

Flask provides a development web server. To run this server, clone this repository onto your computer using

    git clone https://github.com/TopChef/TopChef

cd into that directory, and run

    pip install .

This will install the core dependencies. Create a server database using

    python topchef create-db

This will create a test sqlite database in the repository's main directory titled db.sqlite3. Finally, run the server using

    python topchef runserver

This will start a development server at http://localhost:5000.

Running The Tests

TopChef maintains a unit, integration, and acceptance test suite. In order to run the unit tests, clone the repository and run

    pip install -r requirements.txt

In order to install the package dependencies. Finally, run

    nosetests test/unit --processes=-1 --process-timeout=180 --process-restartworker

To run the unit tests on all the cores available on the processor. Make sure to set a long (about 3 minutes) timeout on tests, as hypothesis can take a long time to generate random examples for a test. Some test cases can take up to a minute to finish.

Maintainers

About

Client/Server code for connecting Bruker TopSpin Software to a job queue server.

Resources

Stars

Watchers

Forks

Packages

No packages published