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.核 ...
随机推荐
- Visual Studio 卸载
1.找个安装镜像文件 2.必须以管理员身份运行cmd 3.在CMD里输入"G:\vs_professional.exe /uninstall /force" 4.企业版就把prof ...
- AI时代的灵魂拷问:我们真正的核心竞争力到底是什么?
"当所有人都在谈论AI+的时候,今天我想聊一点不一样的..." 上周,朋友看着我用Cursor在30分钟内完成了他过去需要两天才能完成的工作. 那一刻,一种强烈的危机感涌上心头,他 ...
- C语言 链表操作
#include<stdio.h>#include<stdlib.h>struct node{ int data; struct node *next;};int ...
- 针对N=p^rq分解之初探
针对N=p^r*q分解之初探 论文地址:https://eprint.iacr.org/2015/399.pdf 题目:https://www.nssctf.cn/problem/2016 from ...
- 强!10.8K star!推荐一款用于威胁预防、安全检测的开源监控平台,功能非常强大!!
在当今数字化时代,网络安全威胁日益严峻,企业和组织对于高效.强大的安全解决方案的需求也愈发迫切. 今天给大家分享一个专注于安全监控的开源项目:Wazuh,正是应对这一挑战的有力武器,专门用于帮助个人和 ...
- DeepSeek过时了?全网刷屏的Manus到底是什么?这样写申请秒过审核
1.Manus是什么? Manus的官网地址:https://manus.im/ Manus是一个通用AI智能体,它连接思维与行动:它不仅思考,还能交付成果. 2. Manus能做什么? 最近几天,M ...
- echarts柱形图给X轴坐标类目添加点击事件
在项目中遇到这么个需求要在柱形图上的x轴添加点击事件,当点击对应x轴文字的时候要弹出模态框展示子图表 根据echarts的Api给图表实例绑定点击事件 myChartInstance?.on('cli ...
- 服务器Go程序意外停止自动重启
判断进程是否挂掉 ps -ef | grep ./blog |wc -l 如果输出为1,说明进程挂掉了 如果输出为2,说明进程正常运行 编辑脚本来检测和完成重启 vim restart.sh 逻辑代码 ...
- CompletableFuture API介绍及使用
1. 介绍 CompletableFuture 是 Java 8 引入的一个用于异步编程的类,位于 java.util.concurrent 包中.它是对 Future 的增强,提供了更强大的功能来支 ...
- windows Oracle 11g安装图解教程
安装以win7/10 64位系统为例1.将win64_11gR2_database_1of2和win64_11gR2_database_2of2解压到同个文件夹下合并(可以直接左键框住右键点击一起解压 ...