Skip to content

通过celery定期执行更相关任务,将万得wind,同花顺ifind,东方财富choice等数据终端的数据进行整合,清洗,一致化,供其他系统数据分析使用

License

dongfengxin/data_integration_celery

 
 

Repository files navigation

data_integration_celery

Build Status GitHub issues GitHub forks GitHub stars GitHub license HitCount Twitter

通过celery定期执行更相关任务,将万得wind,同花顺ifind,东方财富choice等数据终端的数据进行整合,清洗,一致化,供其他系统数据分析使用

环境依赖及安装配置

  • windows
  • rabbitmq

为了支持独立运行在windows环境下,celery 的 broker 选择 rabbitmq 而非 redis(仅支持linux)

RabbitMQ 系统配置

创建用户,host,及访问权限

rabbitmqctl add_user mg ****
rabbitmqctl set_user_tags mg broker_backend

rabbitmqctl add_vhost celery_tasks
rabbitmqctl set_permissions -p celery_tasks mg ".*" ".*" ".*"

rabbitmqctl add_vhost backend
rabbitmqctl set_permissions -p backend mg ".*" ".*" ".*"

启动web端

rabbitmq-plugins enable rabbitmq_management

RabbitMQ 管理界面

启动 celery

启动 worker

celery -A tasks worker --loglevel=info -c 1 -P eventlet

-P 命令只要是为了在win10 下可以正常运行 issue 其他环境下可以去除 -c 命令后面的数字表示平行运行的 worker 数量,建议不要超过CPU核数

启动 beat

celery beat -A tasks

CeleryConfig 中的定时任务将通过 beat 自动启动

Schedules Configuration

推荐配置

from celery.schedules import crontab


class CeleryConfig:
    # Celery settings
    broker_url = 'amqp://mg:***@localhost:5672/celery_tasks',
    result_backend = 'amqp://mg:***@localhost:5672/backend'
    accept_content = ['json']  # , 'pickle'
    timezone = 'Asia/Shanghai'
    imports = ('tasks',)
    beat_schedule = {
        'daily_task': {
            'task': 'tasks.grouped_task_daily',
            'schedule': crontab(hour='16', minute=3, day_of_week='1-5'),
        },
        'weekly_task': {
            'task': 'tasks.grouped_task_weekly',
            'schedule': crontab(hour='10', day_of_week='6'),
        },
    }
    broker_heartbeat = 0

About

通过celery定期执行更相关任务,将万得wind,同花顺ifind,东方财富choice等数据终端的数据进行整合,清洗,一致化,供其他系统数据分析使用

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%