python 爬取实时数据django显示_Python+Django定时爬取git获取git配置文件信息

项目由来

最近联调工作中常需要人员支持,排查环境中遇到的问题,所以使用python+django定时爬取git获取git配置文件信息的接口,优先确保想要环境的配置信息正确,方便定位配置信息是否有误

前期gitlab接口调研

获取所有项目以及项目id

f136cf489e41cf8533d57cb82752be3f.jpg

获取项目下的仓库以及仓库路径

通过获取的仓库以及路径再获取仓库下的配置文件信息

c836fc8e1df6eca7ec9b020eee6ff4a4.jpg

通过获取到配置文件信息,拿到content内容,content内容为base64加密,直接解密保存为byte文件,再转化为json

前期定时任务调研

通过linux定时去执行(还没有实践)

通过django_apscheduler,直接在 views.py中添加以下代码

from django_apscheduler.jobstores import DjangoJobStore,register_events,register_job

#创建一个调度器

scheduler=BackgroundScheduler()

#添加一个作业

scheduler.add_jobstore(DjangoJobStore(),"default")

try:

@register_job(scheduler, "interval", seconds=1)#用interval方式 每1秒执行一次

# @register_job(scheduler, 'cron', day_of_week='mon-sun', hour='8', minute='30', second='10', id='delete_stale_data') # 定时执行:这里定时为周一到周日每天早上8:30执行一次

def time_task():

"""定时的任务逻辑"""

gitlab_db()

print("读取gitlab配置信息")

register_events(scheduler)

scheduler.start()

except Exception as e:

print(e)

scheduler.shutdown()

gitlab配置信息

由于定时任务,需要把gitlab的配置信息抽离,目前存放在config.xml文件中

前期django库以及的设计

project、projectId、commitId、message(配置文件内容)

存库api:

def gitlab_db():

flag=0

gt=gtUtil()

project = gt.projectname

projectId =gt.get_projectsId()

commitId = gt.get_commit()

message = gt.get_message()

print(message)

if commitId:

gitObject=Gitl.objects.filter(commitId=commitId)

print(gitObject)

if not gitObject.exists():

gitObject.create(project=project,projectId=projectId,commitId=commitId,message=message)

flag=1

return JsonResponse({"flag":flag})

对外提供的接口:直接views写一个查库的接口,还有一个封装好gitlab的接口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值