Python实现http接口请求数据后,往RabbitMQ里面插入数据
python实现http接口请求数据服务后,往RABBITmq里面插入数据
import time
import requests
import pika
import datetime
base_url = 'https://www.okx.com'
api_url = '/api/v5/market/history-mark-price-candles'
# 时间颗粒度 [1m/3m/5m/15m/30m/1H/2H/4H]
time_unit = ['1m', '3m', '5m', '15m', '30m', '1h', '2h', '4h']
# 币种list
instId_list = ['ADA-USDT-SWAP', 'ANT-USDT-SWAP', 'ATOM-USDT-SWAP', 'BAT-USDT-SWAP', 'BCH-USDT-SWAP', 'BTC-USDT-SWAP', 'CFX-USDT-SWAP', 'DOGE-USDT-SWAP', 'ENS-USDT-SWAP', 'EOS-USDT-SWAP', 'ETC-USDT-SWAP', 'ETH-USDT-SWAP', 'GFT-USDT-SWAP', 'LTC-USDT-SWAP', 'ORDI-USDT-SWAP', 'STORJ-USDT-SWAP', 'TRX-USDT-SWAP', 'WLD-USDT-SWAP', 'XLM-USDT-SWAP', 'XRP-USDT-SWAP', 'YGG-USDT-SWAP']
# 循环时间颗粒度查询
for bar in time_unit:
# 循环币种
for line in instId_list:
# 开始时间
start_date = '2024-01-01 00:00:00'
end_date = '2023-01-01 00:00:00'
start_timestamp = datetime.datetime.strptime(start_date, '%Y-%m-%d %H:%M:%S').timestamp()
end_timestamp = datetime.datetime.strptime(end_date, '%Y-%m-%d %H:%M:%S').timestamp()
start_timestamp = int(start_timestamp * 1000)
end_timestamp = int(end_timestamp * 1000)
# 参数url
instId = line
after = start_timestamp
bar = bar
args_url = '?instId={}&after={}&bar={}'.format(instId, after, bar)
url = base_url + api_url + args_url while after > end_timestamp:
try:
response = requests.get(url)
result = response.json()
if result['code'] == '0' and result['data']:
result.update({'instId': instId, 'bar': bar})
# 将result 写入到rabbitmq 实现逻辑
# RabbitMQ连接信息
serverURL = "amqp://mel:mel@1.94.96.154:5672/okx_vhost"
exchangeName = "okx_all_exchange"
queueName = "okx_all_queue"
# 建立RabbitMQ连接
connection = pika.BlockingConnection(pika.URLParameters(serverURL))
channel = connection.channel()
# 声明exchange和queue
channel.exchange_declare(exchange=exchangeName, exchange_type='fanout', durable=True)
channel.queue_declare(queue=queueName, durable=True)
# 将数据写入RabbitMQ
channel.basic_publish(exchange=exchangeName, routing_key=queueName, body=str(result))
# 关闭连接
connection.close()
# 具体实现逻辑
after = result['data'][-1][0]
after = int(after)
str_date = datetime.datetime.fromtimestamp(after / 1000).strftime('%Y-%m-%d %H:%M:%S')
print('===bar===', bar)
print('===instId===', instId)
print('===str_date===', str_date)
# time.sleep(1)
# 更新参数url
args_url = '?instId={}&after={}&bar={}'.format(instId, after, bar)
url = base_url + api_url + args_url
else:
break
except requests.exceptions.ProxyError:
print("ProxyError occurred. Retrying...")
time.sleep(1) # 延迟1秒后重试
continue


Python实现http接口请求数据后,往RabbitMQ里面插入数据的更多相关文章
- Devexpres下LookUpEdit绑定数据后会默认弹出数据框的解决办法
LookUpEdit绑定数据后会默认弹出数据框很不友好问题现象: 问题解决前的代码: lueManagement.Text = groupEntity.Name; 2 lueManagement.Ed ...
- hibernate向mysql插入数据后,得到该条数据主键的方法
hibernate向MySQL插入一条数据后,得到该条数据主键的方法.主键是自增长的. 保存完成后,直接用该实体的getId的方法就可以得到.因为保存完成后,hibernate会自动将id赋值给实体. ...
- 关于如何在mysql中插入一条数据后,返回这条数据的id
简单的总结一下如何在mysql中出入一条数据后,返回该条数据的id ,假如之后代码需要这个id,这样做起来就变得非常方便,内容如下: <insert id="insertAndGetI ...
- phalcon: update修改数据却变成了insert插入数据
phalcon: 在对表进行操作是,update修改数据却变成了insert插入数据. 发现,update的时,无论怎么加where都会变成了insert插入数据. 检查了一下表,原来是表没有 主键引 ...
- MySQL为数据表的指定字段插入数据
username not null 没有默认值/有默认值 insert不插入username字段 均不报错 2014年07月23日21:05 百科369 MySQL为数据表的指定字段插入数据 ...
- python数据库操作常用功能使用详解(创建表/插入数据/获取数据)
实例1.取得MYSQL版本 复制代码 代码如下: # -*- coding: UTF-8 -*-#安装MYSQL DB for pythonimport MySQLdb as mdbcon = Non ...
- 【Jmeter测试】接口请求完成后,查询数据库结果,检测数据存储是否正确
Jmeter脚本逻辑 发送POST请求,把数据保存到数据库中 发讯数据库,数据库查询结果保存的变量中 使用BeanShell判断数据库查询结果 Jmeter脚本结构 第一个箭头指的是JDBC Conn ...
- 接口请求,上传byte数组byte[]数据异常,负数变正数/负数变63
一.背景 最近项目中有个需求,就是需要把一个byte[]数组上传到服务端.但是我发现发送的byte数组和服务端接收的数组不一样,所有的正数在传递时正确,数组长度也没变化,但是负数变成了63或者负数全部 ...
- php之mongodb插入数据后如何返回当前插入记录ID
<?php /** *插入记录 *参数: *$table_name:表名 *$record:记录 * *返回值: *成功:true *失败:false */ function insert($t ...
- .NET MVC通过反射获取数据修改历史记录,并插入数据表中
本文属于原创,转载时请标明出处! 折磨了我一个晚上的问题,奈何对物理的反射印象太深了,整天去想着物理的反射.折射怎么解.感谢少将哥哥给我的指点,经过一个晚上对反射的恶补,最终搞定了.纪念一下. 1.核 ...
随机推荐
- 使用 SK 进行向量操作
先祝大家 2025 新年好. 在 2024 年落地的 LLM 应用来看,基本上都是结合 RAG 技术来使用的.因为绝大多数人跟公司是没有 fine-turning 的能力的.不管是在难度还是成本的角度 ...
- 读论文-新闻推荐系统:近期进展、挑战与机遇的评述(News recommender system_ a review of recent progress, challenges, and opportunities)
前言 今天读的论文为一篇于2022年发表在"人工智能评论"(Artificial Intelligence Review)的论文,文章主要强调了NRS面临的主要挑战,并从现有技术中 ...
- .NET10 - 预览版1新功能体验(一)
.NET 10 首个预览版已经在前两天发布,该版本在 .NET Runtime.SDK.libraries.C#.ASP.NET Core.Blazor 和 .NET MAUI 等多个方面都有重大改进 ...
- Alibaba Sentinel SSRF漏洞分析(CVE-2021-44139)
Alibaba Sentinel SSRF漏洞分析(CVE-2021-44139) 一.Alibaba Sentienl 简介 随着微服务的流行,服务和服务之间的稳定性变得越来越重要.Sentinel ...
- cnpm : 无法加载文件 C:\Users\Raytine\AppData\Roaming\npm\cnpm.ps1,因为在此系统上禁止运行脚本。
解决方式: 1.在系统中搜索框 输入 Windos PowerShell 2.点击"管理员身份运行" 3.输入" set-ExecutionPolicy RemoteSi ...
- 使用SVM在数字验证码识别中的应用研究课程报告
第1章 概要设计 1.1 设计目的 支持向量机作为一类强大的监督学习模型,以其出色的泛化能力,在手写数字识别.面部检测.图像分类等多个领域展现出了其优越性.其在处理小样本.非线性及高维模式识别任务中表 ...
- 开源!Django-Vue3-Admin的Python后台管理系统
Django-Vue3-Admin 项目简介 Django-Vue3-Admin 是一个基于 Django + Vue3 的前后端分离的后台管理系统,采用了最新的前后端技术栈,内置了丰富的功能模块,可 ...
- BUUCTF---BabyRSA(简单求解n)
题目 p+q : 0x1232fecb92adead91613e7d9ae5e36fe6bb765317d6ed38ad890b4073539a6231a6620584cea5730b5af83a3e ...
- 【Spring】JdbcTemplate的使用方法
概念和准备 什么是 JdbcTemplate Spring 框架对 JDBC 进行封装,使用 JdbcTemplate 方便实现对数据库操作 准备工作 引入相关 jar 包 在 spring 配置文件 ...
- 【Java】可比较泛型建数组传递报强转类型错误解决方案
问题 可比较泛型怎么新建数组? 自己写基于AVL树的散列表时,在自动扩容的时候需要遍历AVL树的Key,所以需要AVL树提供一个方法返回一个Key数组以遍历,初始实现如下: /** * 用于辅助遍历K ...