コード例 #1
0
ファイル: web_api.py プロジェクト: CKrawczyk/aggregation
#! /usr/bin/env python

from flask import Flask, make_response, request
from rq import Queue
from load_redis import configure_redis
from jobs import aggregate
import os
import json
import logging

app = Flask(__name__)
env = os.getenv("FLASK_ENV", "production")
# 30 mins - http://python-rq.org/docs/results/
q = Queue("default", connection=configure_redis(env), default_timeout=7200)
apis = {
    "development": "http://" + str(os.getenv("HOST_IP", "172.17.42.1")) + ":3000",
    "staging": "https://panoptes-staging.zooniverse.org",
    "production": "https://panoptes.zooniverse.org",
}

api_root = apis[env]


@app.route("/", methods=["POST"])
def start_aggregation():
    try:
        body = request.get_json()
        project = body["project_id"]
        href = body["medium_href"]
        metadata = body["metadata"]
        token = body["token"]
コード例 #2
0
ファイル: job_runner.py プロジェクト: camallen/aggregation
import os
from redis import Redis
from rq import Worker, Queue, Connection
from load_redis import configure_redis
from aggregation_api import base_directory
import yaml
import rollbar


def rollbar_handler(job, exc_type, exc_value, traceback):
    try:
        panoptes_file = open("config/aggregation.yml","rb")
    except IOError:
        panoptes_file = open(base_directory+"/Databases/aggregation.yml","rb")
    api_details = yaml.load(panoptes_file)

    if "rollbar" in api_details["default"]:
        rollbar_token = api_details["default"]["rollbar"]
        rollbar.init(rollbar_token,"production")
        rollbar.report_exc_info()


listen = ['high', 'default', 'low']
env = os.getenv('FLASK_ENV', 'production')

conn = configure_redis(env)

with Connection(conn):
    worker = Worker(map(Queue, listen),exc_handler=rollbar_handler)
    worker.work()
コード例 #3
0
#!/usr/bin/env python

from flask import Flask, make_response, request
from rq import Queue
from load_redis import configure_redis
from jobs import aggregate
import os
import json
import logging

app = Flask(__name__)
env = os.getenv('FLASK_ENV', 'production')
q = Queue(connection=configure_redis(env))
apis = {
    'development':
    "http://" + str(os.getenv('HOST_IP', '172.17.42.1')) + ":3000",
    'staging': "https://panoptes-staging.zooniverse.org",
    'production': "https://panoptes.zooniverse.org"
}

api_root = apis[env]


@app.route('/', methods=['POST'])
def start_aggregation():
    try:
        body = request.get_json()
        project = body['project_id']
        href = body['medium_href']
        metadata = body['metadata']
        token = body['token']
コード例 #4
0
ファイル: web_api.py プロジェクト: Freyapentz/aggregation
#!/usr/bin/env python

from flask import Flask, make_response, request
from rq import Queue
from load_redis import configure_redis
from jobs import aggregate
import os
import json
import logging

app = Flask(__name__)
env = os.getenv('FLASK_ENV', 'production')
q = Queue(connection=configure_redis(env))
apis = {
    'development': "http://"+str(os.getenv('HOST_IP', '172.17.42.1'))+":3000",
    'staging': "https://panoptes-staging.zooniverse.org",
    'production': "https://panoptes.zooniverse.org"
}

api_root = apis[env]

@app.route('/',methods=['POST'])
def start_aggregation():
    try:
        body = request.get_json()
        project = body['project_id']
        href = body['medium_href']
        metadata = body['metadata']
        token = body['token']
        q.enqueue(aggregate, project, token, api_root+"/api"+href, metadata, env)
        resp = make_response(json.dumps({'queued': True}), 200)
コード例 #5
0
import os
from redis import Redis
from rq import Worker, Queue, Connection
from load_redis import configure_redis
import yaml
import rollbar
from rollbar.contrib.rq import exception_handler

listen = ['high', 'default', 'low']
env = os.getenv('FLASK_ENV', 'production')

panoptes_file = open("config/aggregation.yml", "rb")

api_details = yaml.load(panoptes_file)
rollbar_token = api_details[env]["rollbar"]
rollbar.init(rollbar_token, env, handler='blocking')

conn = configure_redis(env)
with Connection(conn):
    worker = Worker(map(Queue, listen))
    worker.push_exc_handler(rollbar.contrib.rq.exception_handler)
    worker.work()
コード例 #6
0
#! /usr/bin/env python

from flask import Flask, make_response, request
from rq import Queue
from load_redis import configure_redis
from jobs import aggregate
import os
import json
import logging

app = Flask(__name__)
env = os.getenv('FLASK_ENV', 'production')
#30 mins - http://python-rq.org/docs/results/
q = Queue('default', connection=configure_redis(env), default_timeout=7200)
apis = {
    'development':
    "http://" + str(os.getenv('HOST_IP', '172.17.42.1')) + ":3000",
    'staging': "https://panoptes-staging.zooniverse.org",
    'production': "https://panoptes.zooniverse.org"
}

api_root = apis[env]


@app.route('/', methods=['POST'])
def start_aggregation():
    try:
        body = request.get_json()
        project = body['project_id']
        href = body['medium_href']
        metadata = body['metadata']