LTtx


NameLTtx JSON
Version 7.1.5 PyPI version JSON
download
home_pagehttps://github.com/95ge/LTtx
SummaryLTtx通信系统,更适合Python宝宝的通信组件,采用socket进行封装,另外封装了一些常用的函数,后续将不断更新
upload_time2024-09-07 08:17:22
maintainerNone
docs_urlNone
author95ge
requires_python>=3.5
licenseMIT
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # LTtx数据中心

# LTtx简介
一、LTtx是一个分布式数据中心,基于Python语言开发,为分布式服务架构提供基础的通信服务。本项目代码完全开源,由于处于开源初期,相应的代码未完全整理,作者主要是用在股票量化的开发,实际运用中对于中国股市全市场Tick行情推送可以胜任推送。基于LTtx数据中心,可以实现许多程序的拆分,各个模块间相互独立,相互配合,也可以做成常用的服务端————客户端模型。在新版本中,新增文件传输功能,为实际开发提供更加全面的功能支持,此外本项目会根据实际生产环境需要,开发新的功能。

二、同时还是一个开发综合函数库,方便使用的各种基础函数(持续更新中),提高代码的开发效率,对于没有安装的Python库再第一次使用时会报错,需要留意,为了代码的轻量化,需要自行安装,一般来说,大部分库Python都会自带,比如再使用特定函数时才会需要依赖库。

# 应用场景
1、分布式量化交易系统   
2、聊天系统     
3、网络认证     
4、中间件       
5、个人云盘     
6、其他网络应用     
7、爬虫IP代理


# 部署方式
· 有两种部署方式

### 一、采用python部署
·该方法和正常的运行python程序一样

1、本项目是基于服务端———客户端的架构方式,在使用时需要先运行服务端程序。启动方式也特别简单,git clone在对应的服务器(可以是Windows,Linux,只要能运行Python文件即可)后通过Python启动,如果是在Linux服务器中请留意放开对应的端口。
- 需要配置Config.txt,也可以只使用默认的模式运行(可选)


- 启动命令

```

python LTtx_server.py

```

2、由于Python的GIL属性,服务端采用了大量的子线程进行功能实现,为保证性能发挥,建议部署在Linux服务器上,并且通过绑定核心运行的方法使用服务端性能达到最优。绑定核心启动命令示例:
```
taskset -c 2 python LTtx_server.py
```
- 本命令可将程序绑定在CPU2上。绑定核心后经本人测试发现在高并发时可以提高大约80%以上的性能。如果您的CPU是12代英特尔,请务必让他运行在性能(大核)核心上。

3、采用守护进程功能,通过使用如下命令启动服务端,这会在LTtx_server意外退出时能第一时间自动重启,如果要人工停止,可以通过连续的Ctrl+c停止。此种方法部署方式为:
```
./check
```
- 如果无法启动,请注意环境中python3的变量名为python,可以通过修改check.sh里的命令启动。

### 二、直接使用命令行部署
1、先通过pip安装LTtx库
```
pip install LTtx
```
·如果发现安装比较慢可以设置清华源进行安装,执行下方命令后重试即可。该命令会把pip源换为清华源,安装其他库也会非常快速。
```
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
```

2、配置好config.txt,如果使用默认则跳过。

3、直接在cmd中运行(建议是在conda中运行):
```
LTtx_server
```



# 函数说明
````
#需要提前执行start_tx()函数,此处的tx1为txl实例化以后的对象
tx1.put("a","b")                   #把云变量“a"赋值为“b",二者均为字符串,新版本中V3中将不再对b进行字符串数据类型进行限制。  

tx1.get("a")                       #获取云变量“a"的值。当put时传入的是一个Python对象,那么获得的值也是一个Python对象。  

tx1.put_df('a',dataframe)          #把云变量“a"赋值为传入的dataframe,此处的变量类型为dataframe,此处的云变量与上方的云变量独立存在

tx1.get_df('a')                    #获取云变量"a"对应的dataframe。

tx1.get_dict_value('a','b')        #获取云变量字典"a"中对应的"b"这个key的值,方便从一个大字典中只取需要的那部分数据,不用把整个字典都取出来,从而提升效率。

tx1.get_list_value('a',-1)         #获取云变量列表"a"对应下标为-1的值。方便从一个大列表中只取需要的那部分数据,提升效率。

tx1.dict_change(var,key,value)     #把云对象var字典对象进行key和value的更新,同本地字典操作方法一致。   

tx1.list_pop(var,data)             #把云对象var列表对象进行列表的pop操作,同本地列表操作方法一致。  

tx1.list_remove(var,data)          #把云对象var列表对象进行列表的remove操作,同本地列表操作方法一致。  

tx1.push("a","abc","test")         #向“test“信道发送消息

tx1.push_plus("a","abc","test")    #是push的升级版本,可以快速完成数据推送,使用前需要先start_plus(),该方法需要大于V4版本才能使用

````

# 简单使用示例
一、引用示例
```
from tx import *
tx1 = txl('192.168.1.65',2025,'LTtx')        #连接服务器 'LTtx'为认证的token,因服务端变化而变化。
tx1.start_tx()                               #开启put/get/push功能
tx1.start_txg("test")                        #开启接收信道"test"消息的功能,若不用可以不开启该功能,所有的数据通过tx1.Q.get()进行获取
tx1.push_plus("a","abc","test")    #是push的升级版本,可以快速完成数据推送,使用前需要先start_plus(),该方法需要大于V4版本才能使用

#关闭连接
tx1.close_tx()#关闭put功能。
tx1.close_txg()#关闭txg功能。

```

二、更多使用方法请参考example.py


# 特别说明
1、 客户端在使用时注意子线程的死循环,最好是加上0.1秒的延迟或者阻塞队列,不要让CPU空转导到客户端无法接收消息。
2、 为了方便在别的系统中使用,本代码不安装pandas,若要使用put_df功能,需要提前安装好pandas库,否则服务端会无法正常工作。


# 升级日志
#### 2024.9.7--------V7.1.3
1、新增save_json()和load_json()方法,用来保存json文件,注意传入的代码不要有numpy的数据格式,否则会报错,后续将会更新自适应方法。

2、新增proxy的静态方法,方便爬虫时更换IP地址进行访问。

3、更新了项目的架构并发布到pip中,现在已经可以通过pip直接安装使用。

4、升级退出模式,可以更优雅的退出程序。通过close_tx和close_txg()实现,在spyder或者ide中,调用这两个函数,可以让程序主动退出。

5、为了方便框架的轻便性,在使用前确保你的环境中已经安装了pandas_market_calendars库和pyzmq。如果没有安装,部分函数可能会报错,但大部分功能不受影响。



#### 2024.4.16--------V7.0.0
1、新增tx.py的升级模式。    
2、更新代码开发辅助函数。   



#### 2024.4.10---------V6
1、put-get模式中增加保存dataframe的功能,对应put_df和get_df方法

2、调整LTtx服务端部署方式,新增Config.txt配置文件

3、引入Centos中守护进程功能,确保服务端高可用


#### 2023.11.6---------V5
1、新增python字典和列表操作方式,方便对云数据进行个性化处理,详情见上方函数说明


#### 2023.8.4---------V4
1、升级整体架构,原功能方法保持不变,提升高并发数据时数据的推送性能。

2、新增push_plus()方法,该方法是push()方法的升级版本,推送性能有2至3倍提升,更适合交易行情的推送。

3、新版本服务端将自动绑定CPU核心,默认会绑定最后一颗CPU核心以提升性能(有2倍左右的性能提升)

#### 2023.7.24---------V3
1、新增文件传输功能,支持文件上传和下载,云端文件保存目录在/file_data/路径中,文件传输为单次短连接,传输完成后会有MD5校验,但没有重传机制。

2、更新内部代码逻辑,在put时可以传入基础的Python对象(只要是Json库支持的即可,例如字典,列表等,但不支持dataframe,如果要保存dataframe请先将dataframe转为字典进行保存,然后再通过
字典转dataframe完成存储)。注意,当传入一个字典对象时,通过get得到的将是一个字典对象,不再是字符串。这也意味着不用每次云变量赋值时进行json.dumps()操作。

3、新增基础的云变量量字典对象操作,详请见方法说明dict_change(var,key,value)。

4、新增基础的列表操作方法list_pop()和list_remove(),原理和正常的操作一样。


#### 2023.7.13---------V2

1、升级服务端消息推送方式,防止因为单个客户端不能接受消息而造成其他客户端不能收到消息,这主要是在大通量数据推送时会发生。

#### 2023.6.1---------V1.1  
1、新增多信道订阅,在start_txg()时传入"hq_center@cb_hq_center"表示同时订阅hq_center信道和cb_hq_center信道。

2、优化代码逻辑,防止粘包。

# 待开发功能


1、开发配套同步程序,该程序会使各个LTtx数据中心的新增云变量保持一致,为分布式部署提供保障,防止因为单个服务端故障后影响其他程序正常运行。

2、新增信道取消功能。

3、其他。

4、升级服务端为异步版本,进一步提升性能。


# 联系作者
1、作者微信
- zlt19950214       

2、作者邮箱 
- 445646258@qq.com


# 作者其他项目
1、天行量化系统
- http://dm.zltnet.top  

- http://txquant.cn




            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/95ge/LTtx",
    "name": "LTtx",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.5",
    "maintainer_email": null,
    "keywords": null,
    "author": "95ge",
    "author_email": "445646258@qq.com",
    "download_url": "https://files.pythonhosted.org/packages/c5/fc/a144d47c05a9f8d2f67a232ed89b66c8fb4c2c59612a923a08a27a3edf27/lttx-7.1.5.tar.gz",
    "platform": null,
    "description": "# LTtx\u6570\u636e\u4e2d\u5fc3\r\n\r\n# LTtx\u7b80\u4ecb\r\n\u4e00\u3001LTtx\u662f\u4e00\u4e2a\u5206\u5e03\u5f0f\u6570\u636e\u4e2d\u5fc3\uff0c\u57fa\u4e8ePython\u8bed\u8a00\u5f00\u53d1\uff0c\u4e3a\u5206\u5e03\u5f0f\u670d\u52a1\u67b6\u6784\u63d0\u4f9b\u57fa\u7840\u7684\u901a\u4fe1\u670d\u52a1\u3002\u672c\u9879\u76ee\u4ee3\u7801\u5b8c\u5168\u5f00\u6e90\uff0c\u7531\u4e8e\u5904\u4e8e\u5f00\u6e90\u521d\u671f\uff0c\u76f8\u5e94\u7684\u4ee3\u7801\u672a\u5b8c\u5168\u6574\u7406\uff0c\u4f5c\u8005\u4e3b\u8981\u662f\u7528\u5728\u80a1\u7968\u91cf\u5316\u7684\u5f00\u53d1\uff0c\u5b9e\u9645\u8fd0\u7528\u4e2d\u5bf9\u4e8e\u4e2d\u56fd\u80a1\u5e02\u5168\u5e02\u573aTick\u884c\u60c5\u63a8\u9001\u53ef\u4ee5\u80dc\u4efb\u63a8\u9001\u3002\u57fa\u4e8eLTtx\u6570\u636e\u4e2d\u5fc3\uff0c\u53ef\u4ee5\u5b9e\u73b0\u8bb8\u591a\u7a0b\u5e8f\u7684\u62c6\u5206\uff0c\u5404\u4e2a\u6a21\u5757\u95f4\u76f8\u4e92\u72ec\u7acb\uff0c\u76f8\u4e92\u914d\u5408\uff0c\u4e5f\u53ef\u4ee5\u505a\u6210\u5e38\u7528\u7684\u670d\u52a1\u7aef\u2014\u2014\u2014\u2014\u5ba2\u6237\u7aef\u6a21\u578b\u3002\u5728\u65b0\u7248\u672c\u4e2d\uff0c\u65b0\u589e\u6587\u4ef6\u4f20\u8f93\u529f\u80fd\uff0c\u4e3a\u5b9e\u9645\u5f00\u53d1\u63d0\u4f9b\u66f4\u52a0\u5168\u9762\u7684\u529f\u80fd\u652f\u6301\uff0c\u6b64\u5916\u672c\u9879\u76ee\u4f1a\u6839\u636e\u5b9e\u9645\u751f\u4ea7\u73af\u5883\u9700\u8981\uff0c\u5f00\u53d1\u65b0\u7684\u529f\u80fd\u3002\r\n\r\n\u4e8c\u3001\u540c\u65f6\u8fd8\u662f\u4e00\u4e2a\u5f00\u53d1\u7efc\u5408\u51fd\u6570\u5e93\uff0c\u65b9\u4fbf\u4f7f\u7528\u7684\u5404\u79cd\u57fa\u7840\u51fd\u6570\uff08\u6301\u7eed\u66f4\u65b0\u4e2d\uff09\uff0c\u63d0\u9ad8\u4ee3\u7801\u7684\u5f00\u53d1\u6548\u7387\uff0c\u5bf9\u4e8e\u6ca1\u6709\u5b89\u88c5\u7684Python\u5e93\u518d\u7b2c\u4e00\u6b21\u4f7f\u7528\u65f6\u4f1a\u62a5\u9519\uff0c\u9700\u8981\u7559\u610f\uff0c\u4e3a\u4e86\u4ee3\u7801\u7684\u8f7b\u91cf\u5316\uff0c\u9700\u8981\u81ea\u884c\u5b89\u88c5\uff0c\u4e00\u822c\u6765\u8bf4\uff0c\u5927\u90e8\u5206\u5e93Python\u90fd\u4f1a\u81ea\u5e26\uff0c\u6bd4\u5982\u518d\u4f7f\u7528\u7279\u5b9a\u51fd\u6570\u65f6\u624d\u4f1a\u9700\u8981\u4f9d\u8d56\u5e93\u3002\r\n\r\n# \u5e94\u7528\u573a\u666f\r\n1\u3001\u5206\u5e03\u5f0f\u91cf\u5316\u4ea4\u6613\u7cfb\u7edf   \r\n2\u3001\u804a\u5929\u7cfb\u7edf     \r\n3\u3001\u7f51\u7edc\u8ba4\u8bc1     \r\n4\u3001\u4e2d\u95f4\u4ef6       \r\n5\u3001\u4e2a\u4eba\u4e91\u76d8     \r\n6\u3001\u5176\u4ed6\u7f51\u7edc\u5e94\u7528     \r\n7\u3001\u722c\u866bIP\u4ee3\u7406\r\n\r\n\r\n# \u90e8\u7f72\u65b9\u5f0f\r\n\u00b7 \u6709\u4e24\u79cd\u90e8\u7f72\u65b9\u5f0f\r\n\r\n### \u4e00\u3001\u91c7\u7528python\u90e8\u7f72\r\n\u00b7\u8be5\u65b9\u6cd5\u548c\u6b63\u5e38\u7684\u8fd0\u884cpython\u7a0b\u5e8f\u4e00\u6837\r\n\r\n1\u3001\u672c\u9879\u76ee\u662f\u57fa\u4e8e\u670d\u52a1\u7aef\u2014\u2014\u2014\u5ba2\u6237\u7aef\u7684\u67b6\u6784\u65b9\u5f0f\uff0c\u5728\u4f7f\u7528\u65f6\u9700\u8981\u5148\u8fd0\u884c\u670d\u52a1\u7aef\u7a0b\u5e8f\u3002\u542f\u52a8\u65b9\u5f0f\u4e5f\u7279\u522b\u7b80\u5355\uff0cgit clone\u5728\u5bf9\u5e94\u7684\u670d\u52a1\u5668\uff08\u53ef\u4ee5\u662fWindows,Linux,\u53ea\u8981\u80fd\u8fd0\u884cPython\u6587\u4ef6\u5373\u53ef\uff09\u540e\u901a\u8fc7Python\u542f\u52a8\uff0c\u5982\u679c\u662f\u5728Linux\u670d\u52a1\u5668\u4e2d\u8bf7\u7559\u610f\u653e\u5f00\u5bf9\u5e94\u7684\u7aef\u53e3\u3002\r\n- \u9700\u8981\u914d\u7f6eConfig.txt\uff0c\u4e5f\u53ef\u4ee5\u53ea\u4f7f\u7528\u9ed8\u8ba4\u7684\u6a21\u5f0f\u8fd0\u884c(\u53ef\u9009)\r\n\r\n\r\n- \u542f\u52a8\u547d\u4ee4\r\n\r\n```\r\n\r\npython LTtx_server.py\r\n\r\n```\r\n\r\n2\u3001\u7531\u4e8ePython\u7684GIL\u5c5e\u6027\uff0c\u670d\u52a1\u7aef\u91c7\u7528\u4e86\u5927\u91cf\u7684\u5b50\u7ebf\u7a0b\u8fdb\u884c\u529f\u80fd\u5b9e\u73b0\uff0c\u4e3a\u4fdd\u8bc1\u6027\u80fd\u53d1\u6325\uff0c\u5efa\u8bae\u90e8\u7f72\u5728Linux\u670d\u52a1\u5668\u4e0a\uff0c\u5e76\u4e14\u901a\u8fc7\u7ed1\u5b9a\u6838\u5fc3\u8fd0\u884c\u7684\u65b9\u6cd5\u4f7f\u7528\u670d\u52a1\u7aef\u6027\u80fd\u8fbe\u5230\u6700\u4f18\u3002\u7ed1\u5b9a\u6838\u5fc3\u542f\u52a8\u547d\u4ee4\u793a\u4f8b\uff1a\r\n```\r\ntaskset -c 2 python LTtx_server.py\r\n```\r\n- \u672c\u547d\u4ee4\u53ef\u5c06\u7a0b\u5e8f\u7ed1\u5b9a\u5728CPU2\u4e0a\u3002\u7ed1\u5b9a\u6838\u5fc3\u540e\u7ecf\u672c\u4eba\u6d4b\u8bd5\u53d1\u73b0\u5728\u9ad8\u5e76\u53d1\u65f6\u53ef\u4ee5\u63d0\u9ad8\u5927\u7ea680%\u4ee5\u4e0a\u7684\u6027\u80fd\u3002\u5982\u679c\u60a8\u7684CPU\u662f12\u4ee3\u82f1\u7279\u5c14\uff0c\u8bf7\u52a1\u5fc5\u8ba9\u4ed6\u8fd0\u884c\u5728\u6027\u80fd\uff08\u5927\u6838\uff09\u6838\u5fc3\u4e0a\u3002\r\n\r\n3\u3001\u91c7\u7528\u5b88\u62a4\u8fdb\u7a0b\u529f\u80fd\uff0c\u901a\u8fc7\u4f7f\u7528\u5982\u4e0b\u547d\u4ee4\u542f\u52a8\u670d\u52a1\u7aef\uff0c\u8fd9\u4f1a\u5728LTtx_server\u610f\u5916\u9000\u51fa\u65f6\u80fd\u7b2c\u4e00\u65f6\u95f4\u81ea\u52a8\u91cd\u542f\uff0c\u5982\u679c\u8981\u4eba\u5de5\u505c\u6b62\uff0c\u53ef\u4ee5\u901a\u8fc7\u8fde\u7eed\u7684Ctrl+c\u505c\u6b62\u3002\u6b64\u79cd\u65b9\u6cd5\u90e8\u7f72\u65b9\u5f0f\u4e3a\uff1a\r\n```\r\n./check\r\n```\r\n- \u5982\u679c\u65e0\u6cd5\u542f\u52a8\uff0c\u8bf7\u6ce8\u610f\u73af\u5883\u4e2dpython3\u7684\u53d8\u91cf\u540d\u4e3apython\uff0c\u53ef\u4ee5\u901a\u8fc7\u4fee\u6539check.sh\u91cc\u7684\u547d\u4ee4\u542f\u52a8\u3002\r\n\r\n### \u4e8c\u3001\u76f4\u63a5\u4f7f\u7528\u547d\u4ee4\u884c\u90e8\u7f72\r\n1\u3001\u5148\u901a\u8fc7pip\u5b89\u88c5LTtx\u5e93\r\n```\r\npip install LTtx\r\n```\r\n\u00b7\u5982\u679c\u53d1\u73b0\u5b89\u88c5\u6bd4\u8f83\u6162\u53ef\u4ee5\u8bbe\u7f6e\u6e05\u534e\u6e90\u8fdb\u884c\u5b89\u88c5\uff0c\u6267\u884c\u4e0b\u65b9\u547d\u4ee4\u540e\u91cd\u8bd5\u5373\u53ef\u3002\u8be5\u547d\u4ee4\u4f1a\u628apip\u6e90\u6362\u4e3a\u6e05\u534e\u6e90\uff0c\u5b89\u88c5\u5176\u4ed6\u5e93\u4e5f\u4f1a\u975e\u5e38\u5feb\u901f\u3002\r\n```\r\npip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple\r\n```\r\n\r\n2\u3001\u914d\u7f6e\u597dconfig.txt\uff0c\u5982\u679c\u4f7f\u7528\u9ed8\u8ba4\u5219\u8df3\u8fc7\u3002\r\n\r\n3\u3001\u76f4\u63a5\u5728cmd\u4e2d\u8fd0\u884c\uff08\u5efa\u8bae\u662f\u5728conda\u4e2d\u8fd0\u884c\uff09\uff1a\r\n```\r\nLTtx_server\r\n```\r\n\r\n\r\n\r\n# \u51fd\u6570\u8bf4\u660e\r\n````\r\n#\u9700\u8981\u63d0\u524d\u6267\u884cstart_tx()\u51fd\u6570,\u6b64\u5904\u7684tx1\u4e3atxl\u5b9e\u4f8b\u5316\u4ee5\u540e\u7684\u5bf9\u8c61\r\ntx1.put(\"a\",\"b\")                   #\u628a\u4e91\u53d8\u91cf\u201ca\"\u8d4b\u503c\u4e3a\u201cb\",\u4e8c\u8005\u5747\u4e3a\u5b57\u7b26\u4e32\uff0c\u65b0\u7248\u672c\u4e2dV3\u4e2d\u5c06\u4e0d\u518d\u5bf9b\u8fdb\u884c\u5b57\u7b26\u4e32\u6570\u636e\u7c7b\u578b\u8fdb\u884c\u9650\u5236\u3002  \r\n\r\ntx1.get(\"a\")                       #\u83b7\u53d6\u4e91\u53d8\u91cf\u201ca\"\u7684\u503c\u3002\u5f53put\u65f6\u4f20\u5165\u7684\u662f\u4e00\u4e2aPython\u5bf9\u8c61\uff0c\u90a3\u4e48\u83b7\u5f97\u7684\u503c\u4e5f\u662f\u4e00\u4e2aPython\u5bf9\u8c61\u3002  \r\n\r\ntx1.put_df('a',dataframe)          #\u628a\u4e91\u53d8\u91cf\u201ca\"\u8d4b\u503c\u4e3a\u4f20\u5165\u7684dataframe\uff0c\u6b64\u5904\u7684\u53d8\u91cf\u7c7b\u578b\u4e3adataframe\uff0c\u6b64\u5904\u7684\u4e91\u53d8\u91cf\u4e0e\u4e0a\u65b9\u7684\u4e91\u53d8\u91cf\u72ec\u7acb\u5b58\u5728\r\n\r\ntx1.get_df('a')                    #\u83b7\u53d6\u4e91\u53d8\u91cf\"a\"\u5bf9\u5e94\u7684dataframe\u3002\r\n\r\ntx1.get_dict_value('a','b')        #\u83b7\u53d6\u4e91\u53d8\u91cf\u5b57\u5178\"a\"\u4e2d\u5bf9\u5e94\u7684\"b\"\u8fd9\u4e2akey\u7684\u503c\uff0c\u65b9\u4fbf\u4ece\u4e00\u4e2a\u5927\u5b57\u5178\u4e2d\u53ea\u53d6\u9700\u8981\u7684\u90a3\u90e8\u5206\u6570\u636e\uff0c\u4e0d\u7528\u628a\u6574\u4e2a\u5b57\u5178\u90fd\u53d6\u51fa\u6765\uff0c\u4ece\u800c\u63d0\u5347\u6548\u7387\u3002\r\n\r\ntx1.get_list_value('a',-1)         #\u83b7\u53d6\u4e91\u53d8\u91cf\u5217\u8868\"a\"\u5bf9\u5e94\u4e0b\u6807\u4e3a-1\u7684\u503c\u3002\u65b9\u4fbf\u4ece\u4e00\u4e2a\u5927\u5217\u8868\u4e2d\u53ea\u53d6\u9700\u8981\u7684\u90a3\u90e8\u5206\u6570\u636e\uff0c\u63d0\u5347\u6548\u7387\u3002\r\n\r\ntx1.dict_change(var,key,value)     #\u628a\u4e91\u5bf9\u8c61var\u5b57\u5178\u5bf9\u8c61\u8fdb\u884ckey\u548cvalue\u7684\u66f4\u65b0\uff0c\u540c\u672c\u5730\u5b57\u5178\u64cd\u4f5c\u65b9\u6cd5\u4e00\u81f4\u3002   \r\n\r\ntx1.list_pop(var,data)             #\u628a\u4e91\u5bf9\u8c61var\u5217\u8868\u5bf9\u8c61\u8fdb\u884c\u5217\u8868\u7684pop\u64cd\u4f5c\uff0c\u540c\u672c\u5730\u5217\u8868\u64cd\u4f5c\u65b9\u6cd5\u4e00\u81f4\u3002  \r\n\r\ntx1.list_remove(var,data)          #\u628a\u4e91\u5bf9\u8c61var\u5217\u8868\u5bf9\u8c61\u8fdb\u884c\u5217\u8868\u7684remove\u64cd\u4f5c\uff0c\u540c\u672c\u5730\u5217\u8868\u64cd\u4f5c\u65b9\u6cd5\u4e00\u81f4\u3002  \r\n\r\ntx1.push(\"a\",\"abc\",\"test\")         #\u5411\u201ctest\u201c\u4fe1\u9053\u53d1\u9001\u6d88\u606f\r\n\r\ntx1.push_plus(\"a\",\"abc\",\"test\")    #\u662fpush\u7684\u5347\u7ea7\u7248\u672c\uff0c\u53ef\u4ee5\u5feb\u901f\u5b8c\u6210\u6570\u636e\u63a8\u9001\uff0c\u4f7f\u7528\u524d\u9700\u8981\u5148start_plus()\uff0c\u8be5\u65b9\u6cd5\u9700\u8981\u5927\u4e8eV4\u7248\u672c\u624d\u80fd\u4f7f\u7528\r\n\r\n````\r\n\r\n# \u7b80\u5355\u4f7f\u7528\u793a\u4f8b\r\n\u4e00\u3001\u5f15\u7528\u793a\u4f8b\r\n```\r\nfrom tx import *\r\ntx1 = txl('192.168.1.65',2025,'LTtx')        #\u8fde\u63a5\u670d\u52a1\u5668 'LTtx'\u4e3a\u8ba4\u8bc1\u7684token,\u56e0\u670d\u52a1\u7aef\u53d8\u5316\u800c\u53d8\u5316\u3002\r\ntx1.start_tx()                               #\u5f00\u542fput/get/push\u529f\u80fd\r\ntx1.start_txg(\"test\")                        #\u5f00\u542f\u63a5\u6536\u4fe1\u9053\"test\"\u6d88\u606f\u7684\u529f\u80fd\uff0c\u82e5\u4e0d\u7528\u53ef\u4ee5\u4e0d\u5f00\u542f\u8be5\u529f\u80fd\uff0c\u6240\u6709\u7684\u6570\u636e\u901a\u8fc7tx1.Q.get()\u8fdb\u884c\u83b7\u53d6\r\ntx1.push_plus(\"a\",\"abc\",\"test\")    #\u662fpush\u7684\u5347\u7ea7\u7248\u672c\uff0c\u53ef\u4ee5\u5feb\u901f\u5b8c\u6210\u6570\u636e\u63a8\u9001\uff0c\u4f7f\u7528\u524d\u9700\u8981\u5148start_plus()\uff0c\u8be5\u65b9\u6cd5\u9700\u8981\u5927\u4e8eV4\u7248\u672c\u624d\u80fd\u4f7f\u7528\r\n\r\n#\u5173\u95ed\u8fde\u63a5\r\ntx1.close_tx()#\u5173\u95edput\u529f\u80fd\u3002\r\ntx1.close_txg()#\u5173\u95edtxg\u529f\u80fd\u3002\r\n\r\n```\r\n\r\n\u4e8c\u3001\u66f4\u591a\u4f7f\u7528\u65b9\u6cd5\u8bf7\u53c2\u8003example.py\r\n\r\n\r\n# \u7279\u522b\u8bf4\u660e\r\n1\u3001 \u5ba2\u6237\u7aef\u5728\u4f7f\u7528\u65f6\u6ce8\u610f\u5b50\u7ebf\u7a0b\u7684\u6b7b\u5faa\u73af\uff0c\u6700\u597d\u662f\u52a0\u4e0a0.1\u79d2\u7684\u5ef6\u8fdf\u6216\u8005\u963b\u585e\u961f\u5217\uff0c\u4e0d\u8981\u8ba9CPU\u7a7a\u8f6c\u5bfc\u5230\u5ba2\u6237\u7aef\u65e0\u6cd5\u63a5\u6536\u6d88\u606f\u3002\r\n2\u3001 \u4e3a\u4e86\u65b9\u4fbf\u5728\u522b\u7684\u7cfb\u7edf\u4e2d\u4f7f\u7528\uff0c\u672c\u4ee3\u7801\u4e0d\u5b89\u88c5pandas\uff0c\u82e5\u8981\u4f7f\u7528put_df\u529f\u80fd\uff0c\u9700\u8981\u63d0\u524d\u5b89\u88c5\u597dpandas\u5e93\uff0c\u5426\u5219\u670d\u52a1\u7aef\u4f1a\u65e0\u6cd5\u6b63\u5e38\u5de5\u4f5c\u3002\r\n\r\n\r\n# \u5347\u7ea7\u65e5\u5fd7\r\n#### 2024.9.7--------V7.1.3\r\n1\u3001\u65b0\u589esave_json()\u548cload_json()\u65b9\u6cd5\uff0c\u7528\u6765\u4fdd\u5b58json\u6587\u4ef6\uff0c\u6ce8\u610f\u4f20\u5165\u7684\u4ee3\u7801\u4e0d\u8981\u6709numpy\u7684\u6570\u636e\u683c\u5f0f\uff0c\u5426\u5219\u4f1a\u62a5\u9519\uff0c\u540e\u7eed\u5c06\u4f1a\u66f4\u65b0\u81ea\u9002\u5e94\u65b9\u6cd5\u3002\r\n\r\n2\u3001\u65b0\u589eproxy\u7684\u9759\u6001\u65b9\u6cd5\uff0c\u65b9\u4fbf\u722c\u866b\u65f6\u66f4\u6362IP\u5730\u5740\u8fdb\u884c\u8bbf\u95ee\u3002\r\n\r\n3\u3001\u66f4\u65b0\u4e86\u9879\u76ee\u7684\u67b6\u6784\u5e76\u53d1\u5e03\u5230pip\u4e2d\uff0c\u73b0\u5728\u5df2\u7ecf\u53ef\u4ee5\u901a\u8fc7pip\u76f4\u63a5\u5b89\u88c5\u4f7f\u7528\u3002\r\n\r\n4\u3001\u5347\u7ea7\u9000\u51fa\u6a21\u5f0f\uff0c\u53ef\u4ee5\u66f4\u4f18\u96c5\u7684\u9000\u51fa\u7a0b\u5e8f\u3002\u901a\u8fc7close_tx\u548cclose_txg()\u5b9e\u73b0\uff0c\u5728spyder\u6216\u8005ide\u4e2d\uff0c\u8c03\u7528\u8fd9\u4e24\u4e2a\u51fd\u6570\uff0c\u53ef\u4ee5\u8ba9\u7a0b\u5e8f\u4e3b\u52a8\u9000\u51fa\u3002\r\n\r\n5\u3001\u4e3a\u4e86\u65b9\u4fbf\u6846\u67b6\u7684\u8f7b\u4fbf\u6027\uff0c\u5728\u4f7f\u7528\u524d\u786e\u4fdd\u4f60\u7684\u73af\u5883\u4e2d\u5df2\u7ecf\u5b89\u88c5\u4e86pandas_market_calendars\u5e93\u548cpyzmq\u3002\u5982\u679c\u6ca1\u6709\u5b89\u88c5\uff0c\u90e8\u5206\u51fd\u6570\u53ef\u80fd\u4f1a\u62a5\u9519\uff0c\u4f46\u5927\u90e8\u5206\u529f\u80fd\u4e0d\u53d7\u5f71\u54cd\u3002\r\n\r\n\r\n\r\n#### 2024.4.16--------V7.0.0\r\n1\u3001\u65b0\u589etx.py\u7684\u5347\u7ea7\u6a21\u5f0f\u3002    \r\n2\u3001\u66f4\u65b0\u4ee3\u7801\u5f00\u53d1\u8f85\u52a9\u51fd\u6570\u3002   \r\n\r\n\r\n\r\n#### 2024.4.10---------V6\r\n1\u3001put-get\u6a21\u5f0f\u4e2d\u589e\u52a0\u4fdd\u5b58dataframe\u7684\u529f\u80fd\uff0c\u5bf9\u5e94put_df\u548cget_df\u65b9\u6cd5\r\n\r\n2\u3001\u8c03\u6574LTtx\u670d\u52a1\u7aef\u90e8\u7f72\u65b9\u5f0f\uff0c\u65b0\u589eConfig.txt\u914d\u7f6e\u6587\u4ef6\r\n\r\n3\u3001\u5f15\u5165Centos\u4e2d\u5b88\u62a4\u8fdb\u7a0b\u529f\u80fd\uff0c\u786e\u4fdd\u670d\u52a1\u7aef\u9ad8\u53ef\u7528\r\n\r\n\r\n#### 2023.11.6---------V5\r\n1\u3001\u65b0\u589epython\u5b57\u5178\u548c\u5217\u8868\u64cd\u4f5c\u65b9\u5f0f\uff0c\u65b9\u4fbf\u5bf9\u4e91\u6570\u636e\u8fdb\u884c\u4e2a\u6027\u5316\u5904\u7406\uff0c\u8be6\u60c5\u89c1\u4e0a\u65b9\u51fd\u6570\u8bf4\u660e\r\n\r\n\r\n#### 2023.8.4---------V4\r\n1\u3001\u5347\u7ea7\u6574\u4f53\u67b6\u6784\uff0c\u539f\u529f\u80fd\u65b9\u6cd5\u4fdd\u6301\u4e0d\u53d8\uff0c\u63d0\u5347\u9ad8\u5e76\u53d1\u6570\u636e\u65f6\u6570\u636e\u7684\u63a8\u9001\u6027\u80fd\u3002\r\n\r\n2\u3001\u65b0\u589epush_plus()\u65b9\u6cd5\uff0c\u8be5\u65b9\u6cd5\u662fpush()\u65b9\u6cd5\u7684\u5347\u7ea7\u7248\u672c\uff0c\u63a8\u9001\u6027\u80fd\u67092\u81f33\u500d\u63d0\u5347\uff0c\u66f4\u9002\u5408\u4ea4\u6613\u884c\u60c5\u7684\u63a8\u9001\u3002\r\n\r\n3\u3001\u65b0\u7248\u672c\u670d\u52a1\u7aef\u5c06\u81ea\u52a8\u7ed1\u5b9aCPU\u6838\u5fc3\uff0c\u9ed8\u8ba4\u4f1a\u7ed1\u5b9a\u6700\u540e\u4e00\u9897CPU\u6838\u5fc3\u4ee5\u63d0\u5347\u6027\u80fd\uff08\u67092\u500d\u5de6\u53f3\u7684\u6027\u80fd\u63d0\u5347\uff09\r\n\r\n#### 2023.7.24---------V3\r\n1\u3001\u65b0\u589e\u6587\u4ef6\u4f20\u8f93\u529f\u80fd\uff0c\u652f\u6301\u6587\u4ef6\u4e0a\u4f20\u548c\u4e0b\u8f7d\uff0c\u4e91\u7aef\u6587\u4ef6\u4fdd\u5b58\u76ee\u5f55\u5728/file_data/\u8def\u5f84\u4e2d\uff0c\u6587\u4ef6\u4f20\u8f93\u4e3a\u5355\u6b21\u77ed\u8fde\u63a5\uff0c\u4f20\u8f93\u5b8c\u6210\u540e\u4f1a\u6709MD5\u6821\u9a8c\uff0c\u4f46\u6ca1\u6709\u91cd\u4f20\u673a\u5236\u3002\r\n\r\n2\u3001\u66f4\u65b0\u5185\u90e8\u4ee3\u7801\u903b\u8f91\uff0c\u5728put\u65f6\u53ef\u4ee5\u4f20\u5165\u57fa\u7840\u7684Python\u5bf9\u8c61\uff08\u53ea\u8981\u662fJson\u5e93\u652f\u6301\u7684\u5373\u53ef\uff0c\u4f8b\u5982\u5b57\u5178\uff0c\u5217\u8868\u7b49\uff0c\u4f46\u4e0d\u652f\u6301dataframe\uff0c\u5982\u679c\u8981\u4fdd\u5b58dataframe\u8bf7\u5148\u5c06dataframe\u8f6c\u4e3a\u5b57\u5178\u8fdb\u884c\u4fdd\u5b58\uff0c\u7136\u540e\u518d\u901a\u8fc7\r\n\u5b57\u5178\u8f6cdataframe\u5b8c\u6210\u5b58\u50a8\uff09\u3002\u6ce8\u610f\uff0c\u5f53\u4f20\u5165\u4e00\u4e2a\u5b57\u5178\u5bf9\u8c61\u65f6\uff0c\u901a\u8fc7get\u5f97\u5230\u7684\u5c06\u662f\u4e00\u4e2a\u5b57\u5178\u5bf9\u8c61\uff0c\u4e0d\u518d\u662f\u5b57\u7b26\u4e32\u3002\u8fd9\u4e5f\u610f\u5473\u7740\u4e0d\u7528\u6bcf\u6b21\u4e91\u53d8\u91cf\u8d4b\u503c\u65f6\u8fdb\u884cjson.dumps()\u64cd\u4f5c\u3002\r\n\r\n3\u3001\u65b0\u589e\u57fa\u7840\u7684\u4e91\u53d8\u91cf\u91cf\u5b57\u5178\u5bf9\u8c61\u64cd\u4f5c\uff0c\u8be6\u8bf7\u89c1\u65b9\u6cd5\u8bf4\u660edict_change(var,key,value)\u3002\r\n\r\n4\u3001\u65b0\u589e\u57fa\u7840\u7684\u5217\u8868\u64cd\u4f5c\u65b9\u6cd5list_pop()\u548clist_remove(),\u539f\u7406\u548c\u6b63\u5e38\u7684\u64cd\u4f5c\u4e00\u6837\u3002\r\n\r\n\r\n#### 2023.7.13---------V2\r\n\r\n1\u3001\u5347\u7ea7\u670d\u52a1\u7aef\u6d88\u606f\u63a8\u9001\u65b9\u5f0f\uff0c\u9632\u6b62\u56e0\u4e3a\u5355\u4e2a\u5ba2\u6237\u7aef\u4e0d\u80fd\u63a5\u53d7\u6d88\u606f\u800c\u9020\u6210\u5176\u4ed6\u5ba2\u6237\u7aef\u4e0d\u80fd\u6536\u5230\u6d88\u606f\uff0c\u8fd9\u4e3b\u8981\u662f\u5728\u5927\u901a\u91cf\u6570\u636e\u63a8\u9001\u65f6\u4f1a\u53d1\u751f\u3002\r\n\r\n#### 2023.6.1---------V1.1  \r\n1\u3001\u65b0\u589e\u591a\u4fe1\u9053\u8ba2\u9605\uff0c\u5728start_txg()\u65f6\u4f20\u5165\"hq_center@cb_hq_center\"\u8868\u793a\u540c\u65f6\u8ba2\u9605hq_center\u4fe1\u9053\u548ccb_hq_center\u4fe1\u9053\u3002\r\n\r\n2\u3001\u4f18\u5316\u4ee3\u7801\u903b\u8f91\uff0c\u9632\u6b62\u7c98\u5305\u3002\r\n\r\n# \u5f85\u5f00\u53d1\u529f\u80fd\r\n\r\n\r\n1\u3001\u5f00\u53d1\u914d\u5957\u540c\u6b65\u7a0b\u5e8f\uff0c\u8be5\u7a0b\u5e8f\u4f1a\u4f7f\u5404\u4e2aLTtx\u6570\u636e\u4e2d\u5fc3\u7684\u65b0\u589e\u4e91\u53d8\u91cf\u4fdd\u6301\u4e00\u81f4\uff0c\u4e3a\u5206\u5e03\u5f0f\u90e8\u7f72\u63d0\u4f9b\u4fdd\u969c\uff0c\u9632\u6b62\u56e0\u4e3a\u5355\u4e2a\u670d\u52a1\u7aef\u6545\u969c\u540e\u5f71\u54cd\u5176\u4ed6\u7a0b\u5e8f\u6b63\u5e38\u8fd0\u884c\u3002\r\n\r\n2\u3001\u65b0\u589e\u4fe1\u9053\u53d6\u6d88\u529f\u80fd\u3002\r\n\r\n3\u3001\u5176\u4ed6\u3002\r\n\r\n4\u3001\u5347\u7ea7\u670d\u52a1\u7aef\u4e3a\u5f02\u6b65\u7248\u672c\uff0c\u8fdb\u4e00\u6b65\u63d0\u5347\u6027\u80fd\u3002\r\n\r\n\r\n# \u8054\u7cfb\u4f5c\u8005\r\n1\u3001\u4f5c\u8005\u5fae\u4fe1\r\n- zlt19950214       \r\n\r\n2\u3001\u4f5c\u8005\u90ae\u7bb1 \r\n- 445646258@qq.com\r\n\r\n\r\n# \u4f5c\u8005\u5176\u4ed6\u9879\u76ee\r\n1\u3001\u5929\u884c\u91cf\u5316\u7cfb\u7edf\r\n- http://dm.zltnet.top  \r\n\r\n- http://txquant.cn\r\n\r\n\r\n\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "LTtx\u901a\u4fe1\u7cfb\u7edf\uff0c\u66f4\u9002\u5408Python\u5b9d\u5b9d\u7684\u901a\u4fe1\u7ec4\u4ef6\uff0c\u91c7\u7528socket\u8fdb\u884c\u5c01\u88c5\uff0c\u53e6\u5916\u5c01\u88c5\u4e86\u4e00\u4e9b\u5e38\u7528\u7684\u51fd\u6570\uff0c\u540e\u7eed\u5c06\u4e0d\u65ad\u66f4\u65b0",
    "version": "7.1.5",
    "project_urls": {
        "Homepage": "https://github.com/95ge/LTtx"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "23feafe66658a173938f75c46808dfe3d92ee0cb3ad783381ab22b571d5fda76",
                "md5": "88a34ca1bc67eb0dc500999ab33ffdd1",
                "sha256": "d5b274e0ba1d6e6f39ea5c06a2f5e462baa8e12b2bfe8acc2a13e95888c58322"
            },
            "downloads": -1,
            "filename": "LTtx-7.1.5-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "88a34ca1bc67eb0dc500999ab33ffdd1",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.5",
            "size": 26144,
            "upload_time": "2024-09-07T08:17:20",
            "upload_time_iso_8601": "2024-09-07T08:17:20.602543Z",
            "url": "https://files.pythonhosted.org/packages/23/fe/afe66658a173938f75c46808dfe3d92ee0cb3ad783381ab22b571d5fda76/LTtx-7.1.5-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5fca144d47c05a9f8d2f67a232ed89b66c8fb4c2c59612a923a08a27a3edf27",
                "md5": "b23b230ff3216d08f1f748073b12aa74",
                "sha256": "25d87a500e167f6f40c39407b91fda84dea193aaadd6d5529ecbc7c301a735a9"
            },
            "downloads": -1,
            "filename": "lttx-7.1.5.tar.gz",
            "has_sig": false,
            "md5_digest": "b23b230ff3216d08f1f748073b12aa74",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.5",
            "size": 24980,
            "upload_time": "2024-09-07T08:17:22",
            "upload_time_iso_8601": "2024-09-07T08:17:22.079917Z",
            "url": "https://files.pythonhosted.org/packages/c5/fc/a144d47c05a9f8d2f67a232ed89b66c8fb4c2c59612a923a08a27a3edf27/lttx-7.1.5.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-09-07 08:17:22",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "95ge",
    "github_project": "LTtx",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "lttx"
}
        
Elapsed time: 0.33295s