使用django框架编写的redis的管理平台

repoll

使用django框架编写的redis的管理平台
传送门:https://github.com/NaNShaner/repoll

项目简介

主要功能(当前功能)

  • Redis的申请、审批、配置上线
  • Redis的监控、启动以及停止操作平台化管理
  • 权限管理依赖django 框架
    在这里插入图片描述

环境依赖

  • 操作系统
Ubuntu 18.04
  • 安装依赖
apt install python3-pip
apt-get install libmysqlclient-dev python3-dev
pip3 install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com  django==2.0
pip3 install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com  djangorestframework
pip3 install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com  django-crontab
pip3 install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com  mysqlclient
pip3 install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com  redis
pip3 install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com  paramiko
pip3 install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com  pyecharts==1.5.1
pip3 install -i http://pypi.douban.com/simple/ --trusted-host=pypi.douban.com  django-simpleui

配置Django

  • 下载项目
make /django # 目录可以自定义
cd /django ; git clone https://github.com/NaNShaner/repoll.git
  • 配置数据库链接
vi /django/repoll/mysite/settings.py
# 修改下文mysql的ip、port、库名、用户名以及密码
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'django',
        'USER': 'root',
        'PASSWORD': 'Pass@word',
        'HOST': '127.0.0.1',
        'PORT': '32768',
    }
}
  • 初始化数据库
python3 manage.py makemigrations
python3 manage.py migrate
  • Django调试模式配置本级服务器IP
vi /django/repoll/mysite/settings.py


# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True

ALLOWED_HOSTS = [u'你本机的IP地址']
  • 执行以下命令完成simpleui的静态资源离线可访问
cd /django/repoll
python3 manage.py  collectstatic
  • 创建管理员用户
python3 manage.py createsuperuser #用户名密码,自定义

启动项目

  • 开启redis的qps监控执行以下命令
cd /django/repoll
python3 manage.py crontab add
  • 启动repoll
cd /django/repoll
python3 manage.py runserver 127.0.0.1:8000 # 这里的IP换成本机服务器IP,端口自定义

访问项目地址

http://127.0.0.1:8000/admin

在这里插入图片描述

标准化申请流程

  • 分配普通用户权限(dev或者ops角色)
  • 领导层进行审批(boss角色)
  • 管理员(dba角色)进行配置上线

Todo list

  • 支持哨兵模式和集群模式
  • 监控独立展示,包括qps、内存使用率、客户端链接以及慢查询等
  • 支持web console

声明

该项目将长期维护,期望有对redis有平台化管理的朋友加入一起维护。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
首先,需要确保你已经安装了Celery和Django-Celery-Beat。接下来,我们可以根据下面的步骤来实现定时任务的执行。 1. 在Django的settings.py文件中添加以下配置: ``` CELERY_BROKER_URL = 'redis://localhost:6379/0' CELERY_RESULT_BACKEND = 'redis://localhost:6379/0' CELERY_TIMEZONE = 'Asia/Shanghai' INSTALLED_APPS = [ # ... 'django_celery_beat', ] ``` 其中,`CELERY_BROKER_URL` 和 `CELERY_RESULT_BACKEND` 分别用于指定 Celery 的消息队列和结果存储位置,这里我们使用 Redis 数据库。`CELERY_TIMEZONE` 用于指定时区,这里我们使用了上海时区。同时,需要将 `django_celery_beat` 添加到 `INSTALLED_APPS` 中。 2. 创建定时任务模型 在Django中,我们可以使用模型类来定义定时任务,这样可以方便地进行管理和修改。我们可以在任意一个应用中创建一个名为 `tasks.py` 的文件,然后在其中定义一个模型类,例如: ``` from django.db import models from django.utils import timezone from django_celery_beat.models import PeriodicTask, CrontabSchedule class MyTask(models.Model): name = models.CharField(max_length=255) crontab = models.CharField(max_length=255) args = models.CharField(max_length=255, blank=True) kwargs = models.CharField(max_length=255, blank=True) def save(self, *args, **kwargs): # 创建或更新定时任务 crontab, _ = CrontabSchedule.objects.get_or_create( minute=self.crontab.split()[0], hour=self.crontab.split()[1], day_of_week=self.crontab.split()[2], day_of_month=self.crontab.split()[3], month_of_year=self.crontab.split()[4] ) task, _ = PeriodicTask.objects.get_or_create( name=self.name, task='myapp.tasks.my_task', args=self.args, kwargs=self.kwargs, crontab=crontab ) super().save(*args, **kwargs) def delete(self, *args, **kwargs): # 删除定时任务 task = PeriodicTask.objects.filter(name=self.name) task.delete() super().delete(*args, **kwargs) ``` 在这个例子中,我们定义了一个名为 `MyTask` 的模型类,其中包含了定时任务的名称、定时规则、参数等信息。在 `save` 方法中,我们使用 `CrontabSchedule` 和 `PeriodicTask` 模型类来创建或更新定时任务。在 `delete` 方法中,我们使用 `PeriodicTask` 模型类来删除定时任务。 3. 编写定时任务函数 在 `MyTask` 模型类中,我们指定了一个名为 `my_task` 的函数作为定时任务的执行函数。我们可以在任意一个应用中创建一个名为 `tasks.py` 的文件,然后在其中定义这个函数,例如: ``` from celery import shared_task @shared_task def my_task(*args, **kwargs): print('Hello, world!') ``` 在这个例子中,我们定义了一个名为 `my_task` 的函数,使用 `@shared_task` 装饰器将其转换成 Celery 的任务函数。在这个任务函数中,我们只是简单地打印了一条消息。 4. 启动 Celery 任务队列 在一个终端中,我们可以使用以下命令启动 Celery: ``` celery -A myproject worker -l info ``` 其中,`myproject` 是你的 Django 项目名称,`-l info` 参数用于指定 Celery 的日志级别。 5. 启动 Celery 定时任务 在另一个终端中,我们可以使用以下命令启动 Celery 的定时任务: ``` celery -A myproject beat -l info ``` 其中,`myproject` 是你的 Django 项目名称,`-l info` 参数用于指定 Celery 的日志级别。 6. 创建和管理定时任务 现在,我们已经可以通过 `MyTask` 模型类来创建和管理定时任务了。例如,我们可以在 Django shell 中执行以下代码来创建一个每分钟执行一次的定时任务: ``` from myapp.models import MyTask task = MyTask(name='my_task_1', crontab='* * * * *', args='', kwargs='') task.save() ``` 我们也可以在 Django admin 中创建和管理定时任务。只需要在 admin.py 文件中注册 `MyTask` 模型类即可: ``` from django.contrib import admin from myapp.models import MyTask @admin.register(MyTask) class MyTaskAdmin(admin.ModelAdmin): list_display = ('name', 'crontab', 'args', 'kwargs') ``` 现在,我们可以在 Django admin 中创建和管理定时任务了。 总结一下,使用 Celery 和 Django-Celery-Beat 可以方便地实现定时任务的执行。我们只需要定义一个定时任务模型类,然后在其中指定定时规则和执行函数即可。同时,我们也可以使用 Django admin 来创建和管理定时任务,非常方便。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值