将pleanrio数据集导出到s3

plenario-exporter-s3的Python项目详细描述


https://travis-ci.org/UrbanCCD-UChicago/plenario-exporter-s3.svg?branch=masterhttps://coveralls.io/repos/github/UrbanCCD-UChicago/plenario-exporter-s3/badge.svg?branch=master

用法

这既是一个简单的应用程序,也是一个相当复杂的应用程序。这个 它执行的操作是直截了当的—创建作业以导出数据集, 压缩生成的csv,将它们上传到amazon s3,并向请求者发送电子邮件。

应用程序使用django-channels:它是 django,从而免除了为 celeryflower。但它有自己的包袱——在生产过程中 它自己的服务器环境,并依赖redis进行消息传递。

总的来说,它相当快,我相信channels是未来 而不是celery

要连接起来,这是一个相对简单的安装:

# your site/settings.py
INSTALLED_APPS = [
    'whatever django and local stuff',
    'channels',  # necessary to make exporter go
    'plenario_exporter_s3',  # this app
]

CHANNEL_LAYERS = {
    'default': {
        'BACKEND': 'asgi_redis.RedisChannelLayer',
        'CONFIG': {
            'hosts': [os.environ.get('REDIS_URL', 'redis://localhost:6379')],
        },
        'ROUTING': 'plenario_exporter_s3.routing.channel_routing',
    },
}

您还需要一个asgi.py文件以及wsgi文件:

import os
import channels.asgi

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your app.settings')
channel_layer = channels.asgi.get_channel_layer()

在您的视图中,将提供的导出服务功能连接为 async_handler参数到plenario-core导出视图:

from plenario_core.views.export import GenericMetaExportView
from plenario_exporter_s3.services import create_models_and_start_job

from .models import EtlEventMeta

export_meta = GenericMetaExportView.as_view(
    models=[EtlEventMeta],
    async_handler=create_models_and_start_job)

开发

启动virtualenv并安装开发要求:

$ python3.6 -m venv .env
$ source .env/bin/activate
$ pip install -r dev-requirements.txt

要运行测试,请在单独的终端中拉入postgis docker图像并创建数据库:

$ docker pull mdillon/postgis
$ docker run -d -p 5432:5432 mdillon/postgis
$ docker ps
...
$ docker exec -it {container hash} /bin/bash
...
# su postgres -c psql
...
> create database plenario;

您还需要运行本地redis服务器:

$ docker pull redis
$ docker run -d -p 6379:6379 redis

那么您所要做的就是正常运行测试:

$ coverage run manage.py test
$ coverage report
$ flake8

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java无法调用扩展超级非抽象类的抽象类方法   java Hibernate 5关联[]引用了一个未映射的实体[]:origin(User.hbm.xml)   java禁用JSpinner中的数字分组   java Spring的环境抽象是否使用PropertyEditor?   java是否创建自定义注释作为FrameworkAnnotation的别名?   java如何将Selenium安装为Unix守护程序?   java三值if运算符在正则if-one中   有人能帮我在一个程序上分析java代码吗?   java Spring集成5.0反应堆类型支持   java Websphere 7线程转储分析   java Akka期货和监管策略如何应对失败   使用Clojure中的可选参数调用java函数的构造函数   java如何消除安卓按钮的延迟?   Android上使用X.509证书的java认证应用程序   java如何获取列表中特定类型的所有对象?   java如何将json数组字符串转换为json对象   安卓 Java从长时间返回的日期不正确   java Android Studio在尝试从TextEdit搜索单词时崩溃   ViewPager的java子项