funboost 50.3__py3-none-any.whl → 50.4__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of funboost might be problematic. Click here for more details.

Files changed (45) hide show
  1. funboost/__init__.py +1 -1
  2. funboost/constant.py +4 -0
  3. funboost/consumers/base_consumer.py +93 -98
  4. funboost/consumers/celery_consumer.py +1 -1
  5. funboost/consumers/dramatiq_consumer.py +0 -5
  6. funboost/consumers/grpc_consumer.py +1 -1
  7. funboost/consumers/http_consumer.py +1 -1
  8. funboost/consumers/http_consumer_aiohttp_old.py +1 -1
  9. funboost/consumers/huey_consumer.py +2 -5
  10. funboost/consumers/kafka_consumer.py +0 -2
  11. funboost/consumers/kafka_consumer_manually_commit.py +0 -1
  12. funboost/consumers/kombu_consumer.py +0 -39
  13. funboost/consumers/mysql_cdc_consumer.py +1 -3
  14. funboost/consumers/pulsar_consumer.py +10 -5
  15. funboost/consumers/rabbitmq_amqpstorm_consumer.py +7 -8
  16. funboost/consumers/rabbitmq_complex_routing_consumer.py +54 -0
  17. funboost/consumers/redis_consumer.py +1 -1
  18. funboost/consumers/redis_consumer_ack_able.py +1 -1
  19. funboost/consumers/redis_consumer_ack_using_timeout.py +2 -6
  20. funboost/consumers/redis_consumer_priority.py +1 -1
  21. funboost/consumers/redis_stream_consumer.py +1 -3
  22. funboost/consumers/tcp_consumer.py +1 -1
  23. funboost/consumers/udp_consumer.py +1 -1
  24. funboost/consumers/zeromq_consumer.py +1 -1
  25. funboost/contrib/save_function_result_status/__init__.py +0 -0
  26. funboost/contrib/{save_result_status_to_sqldb.py → save_function_result_status/save_result_status_to_sqldb.py} +8 -41
  27. funboost/contrib/save_function_result_status/save_result_status_use_dataset.py +47 -0
  28. funboost/core/booster.py +7 -1
  29. funboost/core/broker_kind__exclusive_config_default_define.py +229 -0
  30. funboost/core/funboost_time.py +3 -82
  31. funboost/core/func_params_model.py +9 -3
  32. funboost/core/helper_funs.py +2 -2
  33. funboost/factories/broker_kind__publsiher_consumer_type_map.py +5 -0
  34. funboost/funboost_config_deafult.py +0 -3
  35. funboost/function_result_web/templates/fun_result_table.html +1 -1
  36. funboost/publishers/base_publisher.py +3 -2
  37. funboost/publishers/rabbitmq_amqpstorm_publisher.py +8 -7
  38. funboost/publishers/rabbitmq_complex_routing_publisher.py +84 -0
  39. funboost/utils/redis_manager.py +11 -5
  40. {funboost-50.3.dist-info → funboost-50.4.dist-info}/METADATA +156 -97
  41. {funboost-50.3.dist-info → funboost-50.4.dist-info}/RECORD +44 -40
  42. {funboost-50.3.dist-info → funboost-50.4.dist-info}/WHEEL +1 -1
  43. funboost-50.3.dist-info/LICENSE +0 -203
  44. {funboost-50.3.dist-info → funboost-50.4.dist-info}/entry_points.txt +0 -0
  45. {funboost-50.3.dist-info → funboost-50.4.dist-info}/top_level.txt +0 -0
@@ -1,19 +1,18 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.4
2
2
  Name: funboost
3
- Version: 50.3
3
+ Version: 50.4
4
4
  Summary: pip install funboost,python全功能分布式函数调度框架,funboost的功能是全面性重量级,用户能想得到的功能99%全都有;funboost的使用方式是轻量级,只有@boost一行代码需要写。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,funboost web manager 方便查看和管理消费函数;99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚
5
5
  Home-page: https://github.com/ydf0509/funboost
6
6
  Author: bfzs
7
7
  Author-email: ydf0509@sohu.com
8
8
  Maintainer: ydf
9
9
  Maintainer-email: ydf0509@sohu.com
10
- License: BSD License
10
+ License: BSD-3-Clause
11
11
  Keywords: funboost,distributed-framework,function-scheduling,rabbitmq,rocketmq,kafka,nsq,redis,disk,sqlachemy,consume-confirm,timing,task-scheduling,apscheduler,pulsar,mqtt,kombu,的,celery,框架,分布式调度
12
12
  Platform: all
13
13
  Classifier: Development Status :: 4 - Beta
14
14
  Classifier: Operating System :: OS Independent
15
15
  Classifier: Intended Audience :: Developers
16
- Classifier: License :: OSI Approved :: BSD License
17
16
  Classifier: Programming Language :: Python
18
17
  Classifier: Programming Language :: Python :: Implementation
19
18
  Classifier: Programming Language :: Python :: 3
@@ -28,30 +27,29 @@ Classifier: Programming Language :: Python :: 3.14
28
27
  Classifier: Programming Language :: Python :: 3 :: Only
29
28
  Classifier: Topic :: Software Development :: Libraries
30
29
  Description-Content-Type: text/markdown
31
- License-File: LICENSE
32
- Requires-Dist: nb-log >=13.9
33
- Requires-Dist: nb-libs >=1.9
34
- Requires-Dist: nb-time >=2.4
35
- Requires-Dist: pymongo >=4.6.3
36
- Requires-Dist: AMQPStorm ==2.10.6
37
- Requires-Dist: rabbitpy ==2.0.1
38
- Requires-Dist: decorator ==5.1.1
39
- Requires-Dist: tomorrow3 ==1.1.0
40
- Requires-Dist: persist-queue >=0.4.2
41
- Requires-Dist: apscheduler <4.0.0,>=3.10.1
30
+ Requires-Dist: nb_log>=13.9
31
+ Requires-Dist: nb_libs>=1.9
32
+ Requires-Dist: nb_time>=2.7
33
+ Requires-Dist: pymongo>=4.6.3
34
+ Requires-Dist: AMQPStorm==2.10.6
35
+ Requires-Dist: rabbitpy==2.0.1
36
+ Requires-Dist: decorator==5.1.1
37
+ Requires-Dist: tomorrow3==1.1.0
38
+ Requires-Dist: persist-queue>=0.4.2
39
+ Requires-Dist: apscheduler<4.0.0,>=3.10.1
42
40
  Requires-Dist: pikav0
43
41
  Requires-Dist: pikav1
44
42
  Requires-Dist: redis2
45
43
  Requires-Dist: redis3
46
44
  Requires-Dist: redis5
47
45
  Requires-Dist: redis
48
- Requires-Dist: setuptools-rust
49
- Requires-Dist: fabric2 >=2.6.0
50
- Requires-Dist: nb-filelock
46
+ Requires-Dist: setuptools_rust
47
+ Requires-Dist: fabric2>=2.6.0
48
+ Requires-Dist: nb_filelock
51
49
  Requires-Dist: pysnooper
52
50
  Requires-Dist: deprecated
53
51
  Requires-Dist: cryptography
54
- Requires-Dist: auto-run-on-remote
52
+ Requires-Dist: auto_run_on_remote
55
53
  Requires-Dist: frozenlist
56
54
  Requires-Dist: fire
57
55
  Requires-Dist: pydantic
@@ -59,82 +57,112 @@ Requires-Dist: orjson
59
57
  Requires-Dist: async-timeout
60
58
  Requires-Dist: typing-extensions
61
59
  Provides-Extra: all
62
- Requires-Dist: confluent-kafka ==1.7.0 ; extra == 'all'
63
- Requires-Dist: celery ; extra == 'all'
64
- Requires-Dist: flower ; extra == 'all'
65
- Requires-Dist: nameko ==2.14.1 ; extra == 'all'
66
- Requires-Dist: sqlalchemy ==1.4.13 ; extra == 'all'
67
- Requires-Dist: sqlalchemy-utils ==0.36.1 ; extra == 'all'
68
- Requires-Dist: dramatiq ==1.14.2 ; extra == 'all'
69
- Requires-Dist: huey ==2.4.5 ; extra == 'all'
70
- Requires-Dist: rq ==1.15.0 ; extra == 'all'
71
- Requires-Dist: kombu ; extra == 'all'
72
- Requires-Dist: elasticsearch ; extra == 'all'
73
- Requires-Dist: gnsq ==1.0.1 ; extra == 'all'
74
- Requires-Dist: psutil ; extra == 'all'
75
- Requires-Dist: peewee ==3.17.3 ; extra == 'all'
76
- Requires-Dist: nats-python ; extra == 'all'
77
- Requires-Dist: aiohttp ==3.8.3 ; extra == 'all'
78
- Requires-Dist: paho-mqtt ; extra == 'all'
79
- Requires-Dist: rocketmq ; extra == 'all'
80
- Requires-Dist: zmq ; extra == 'all'
81
- Requires-Dist: pyzmq ; extra == 'all'
82
- Requires-Dist: kafka-python ==2.0.2 ; extra == 'all'
83
- Requires-Dist: eventlet ==0.33.3 ; extra == 'all'
84
- Requires-Dist: gevent ==22.10.2 ; extra == 'all'
85
- Requires-Dist: mysql-replication ==1.0.9 ; extra == 'all'
86
- Requires-Dist: grpcio ==1.60.0 ; extra == 'all'
87
- Requires-Dist: grpcio-tools ==1.60.0 ; extra == 'all'
88
- Requires-Dist: protobuf ==4.25.1 ; extra == 'all'
89
- Requires-Dist: waitress ; extra == 'all'
90
- Requires-Dist: flask ; extra == 'all'
91
- Requires-Dist: flask-bootstrap ; extra == 'all'
92
- Requires-Dist: flask-wtf ; extra == 'all'
93
- Requires-Dist: wtforms ; extra == 'all'
94
- Requires-Dist: flask-login ; extra == 'all'
95
- Requires-Dist: pulsar-client ==3.1.0 ; (python_version >= "3.7") and extra == 'all'
96
- Provides-Extra: extra_brokers
97
- Requires-Dist: confluent-kafka ==1.7.0 ; extra == 'extra_brokers'
98
- Requires-Dist: celery ; extra == 'extra_brokers'
99
- Requires-Dist: flower ; extra == 'extra_brokers'
100
- Requires-Dist: nameko ==2.14.1 ; extra == 'extra_brokers'
101
- Requires-Dist: sqlalchemy ==1.4.13 ; extra == 'extra_brokers'
102
- Requires-Dist: sqlalchemy-utils ==0.36.1 ; extra == 'extra_brokers'
103
- Requires-Dist: dramatiq ==1.14.2 ; extra == 'extra_brokers'
104
- Requires-Dist: huey ==2.4.5 ; extra == 'extra_brokers'
105
- Requires-Dist: rq ==1.15.0 ; extra == 'extra_brokers'
106
- Requires-Dist: kombu ; extra == 'extra_brokers'
107
- Requires-Dist: elasticsearch ; extra == 'extra_brokers'
108
- Requires-Dist: gnsq ==1.0.1 ; extra == 'extra_brokers'
109
- Requires-Dist: psutil ; extra == 'extra_brokers'
110
- Requires-Dist: peewee ==3.17.3 ; extra == 'extra_brokers'
111
- Requires-Dist: nats-python ; extra == 'extra_brokers'
112
- Requires-Dist: aiohttp ==3.8.3 ; extra == 'extra_brokers'
113
- Requires-Dist: paho-mqtt ; extra == 'extra_brokers'
114
- Requires-Dist: rocketmq ; extra == 'extra_brokers'
115
- Requires-Dist: zmq ; extra == 'extra_brokers'
116
- Requires-Dist: pyzmq ; extra == 'extra_brokers'
117
- Requires-Dist: kafka-python ==2.0.2 ; extra == 'extra_brokers'
118
- Requires-Dist: eventlet ==0.33.3 ; extra == 'extra_brokers'
119
- Requires-Dist: gevent ==22.10.2 ; extra == 'extra_brokers'
120
- Requires-Dist: mysql-replication ==1.0.9 ; extra == 'extra_brokers'
121
- Requires-Dist: grpcio ==1.60.0 ; extra == 'extra_brokers'
122
- Requires-Dist: grpcio-tools ==1.60.0 ; extra == 'extra_brokers'
123
- Requires-Dist: protobuf ==4.25.1 ; extra == 'extra_brokers'
124
- Requires-Dist: waitress ; extra == 'extra_brokers'
125
- Requires-Dist: pulsar-client ==3.1.0 ; (python_version >= "3.7") and extra == 'extra_brokers'
60
+ Requires-Dist: confluent_kafka==1.7.0; extra == "all"
61
+ Requires-Dist: pulsar-client==3.1.0; python_version >= "3.7" and extra == "all"
62
+ Requires-Dist: celery; extra == "all"
63
+ Requires-Dist: flower; extra == "all"
64
+ Requires-Dist: nameko==2.14.1; extra == "all"
65
+ Requires-Dist: sqlalchemy==1.4.13; extra == "all"
66
+ Requires-Dist: sqlalchemy_utils==0.36.1; extra == "all"
67
+ Requires-Dist: dramatiq==1.14.2; extra == "all"
68
+ Requires-Dist: huey==2.4.5; extra == "all"
69
+ Requires-Dist: rq==1.15.0; extra == "all"
70
+ Requires-Dist: kombu; extra == "all"
71
+ Requires-Dist: elasticsearch; extra == "all"
72
+ Requires-Dist: gnsq==1.0.1; extra == "all"
73
+ Requires-Dist: psutil; extra == "all"
74
+ Requires-Dist: peewee==3.17.3; extra == "all"
75
+ Requires-Dist: nats-python; extra == "all"
76
+ Requires-Dist: aiohttp==3.8.3; extra == "all"
77
+ Requires-Dist: paho-mqtt; extra == "all"
78
+ Requires-Dist: rocketmq; extra == "all"
79
+ Requires-Dist: zmq; extra == "all"
80
+ Requires-Dist: pyzmq; extra == "all"
81
+ Requires-Dist: kafka-python==2.0.2; extra == "all"
82
+ Requires-Dist: eventlet==0.33.3; extra == "all"
83
+ Requires-Dist: gevent==22.10.2; extra == "all"
84
+ Requires-Dist: mysql-replication==1.0.9; extra == "all"
85
+ Requires-Dist: grpcio==1.60.0; extra == "all"
86
+ Requires-Dist: grpcio-tools==1.60.0; extra == "all"
87
+ Requires-Dist: protobuf==4.25.1; extra == "all"
88
+ Requires-Dist: waitress; extra == "all"
89
+ Requires-Dist: flask; extra == "all"
90
+ Requires-Dist: flask_bootstrap; extra == "all"
91
+ Requires-Dist: flask_wtf; extra == "all"
92
+ Requires-Dist: wtforms; extra == "all"
93
+ Requires-Dist: flask_login; extra == "all"
94
+ Provides-Extra: extra-brokers
95
+ Requires-Dist: confluent_kafka==1.7.0; extra == "extra-brokers"
96
+ Requires-Dist: pulsar-client==3.1.0; python_version >= "3.7" and extra == "extra-brokers"
97
+ Requires-Dist: celery; extra == "extra-brokers"
98
+ Requires-Dist: flower; extra == "extra-brokers"
99
+ Requires-Dist: nameko==2.14.1; extra == "extra-brokers"
100
+ Requires-Dist: sqlalchemy==1.4.13; extra == "extra-brokers"
101
+ Requires-Dist: sqlalchemy_utils==0.36.1; extra == "extra-brokers"
102
+ Requires-Dist: dramatiq==1.14.2; extra == "extra-brokers"
103
+ Requires-Dist: huey==2.4.5; extra == "extra-brokers"
104
+ Requires-Dist: rq==1.15.0; extra == "extra-brokers"
105
+ Requires-Dist: kombu; extra == "extra-brokers"
106
+ Requires-Dist: elasticsearch; extra == "extra-brokers"
107
+ Requires-Dist: gnsq==1.0.1; extra == "extra-brokers"
108
+ Requires-Dist: psutil; extra == "extra-brokers"
109
+ Requires-Dist: peewee==3.17.3; extra == "extra-brokers"
110
+ Requires-Dist: nats-python; extra == "extra-brokers"
111
+ Requires-Dist: aiohttp==3.8.3; extra == "extra-brokers"
112
+ Requires-Dist: paho-mqtt; extra == "extra-brokers"
113
+ Requires-Dist: rocketmq; extra == "extra-brokers"
114
+ Requires-Dist: zmq; extra == "extra-brokers"
115
+ Requires-Dist: pyzmq; extra == "extra-brokers"
116
+ Requires-Dist: kafka-python==2.0.2; extra == "extra-brokers"
117
+ Requires-Dist: eventlet==0.33.3; extra == "extra-brokers"
118
+ Requires-Dist: gevent==22.10.2; extra == "extra-brokers"
119
+ Requires-Dist: mysql-replication==1.0.9; extra == "extra-brokers"
120
+ Requires-Dist: grpcio==1.60.0; extra == "extra-brokers"
121
+ Requires-Dist: grpcio-tools==1.60.0; extra == "extra-brokers"
122
+ Requires-Dist: protobuf==4.25.1; extra == "extra-brokers"
123
+ Requires-Dist: waitress; extra == "extra-brokers"
126
124
  Provides-Extra: flask
127
- Requires-Dist: flask ; extra == 'flask'
128
- Requires-Dist: flask-bootstrap ; extra == 'flask'
129
- Requires-Dist: flask-wtf ; extra == 'flask'
130
- Requires-Dist: wtforms ; extra == 'flask'
131
- Requires-Dist: flask-login ; extra == 'flask'
125
+ Requires-Dist: flask; extra == "flask"
126
+ Requires-Dist: flask_bootstrap; extra == "flask"
127
+ Requires-Dist: flask_wtf; extra == "flask"
128
+ Requires-Dist: wtforms; extra == "flask"
129
+ Requires-Dist: flask_login; extra == "flask"
130
+ Dynamic: author
131
+ Dynamic: author-email
132
+ Dynamic: classifier
133
+ Dynamic: description
134
+ Dynamic: description-content-type
135
+ Dynamic: home-page
136
+ Dynamic: keywords
137
+ Dynamic: license
138
+ Dynamic: maintainer
139
+ Dynamic: maintainer-email
140
+ Dynamic: platform
141
+ Dynamic: provides-extra
142
+ Dynamic: requires-dist
143
+ Dynamic: summary
132
144
 
133
145
  # 1.python万能分布式函数调度框架简funboost简介
134
146
 
147
+ funboost教程: [https://funboost.readthedocs.io/zh-cn/latest/index.html](https://funboost.readthedocs.io/zh-cn/latest/index.html)
148
+
135
149
  ## 1.0 funboost 框架说明介绍
136
150
 
137
- `funboost`是一个 神奇 万能 简单 强大 自由 的 `python`框架,它的作用是给用户任意项目的任意函数赋能.
151
+ `funboost`是一个 万能 强大 简单 自由 的 `python` 全功能分布式调度框架,它的作用是给用户任意项目的任意函数赋能.
152
+
153
+
154
+ <h4>📹 观看 funboost 视频</h4>
155
+ <video controls width="800"
156
+ src="https://ydf0509.github.io/funboost_git_pages/%E8%A7%86%E9%A2%91-Funboost_%E8%A7%86%E9%A2%91.mp4">
157
+ 您的浏览器不支持视频播放。
158
+ </video>
159
+
160
+ <h4>🎧 收听 funboost 音频</h4>
161
+ <audio controls
162
+ src="https://ydf0509.github.io/funboost_git_pages/%E9%9F%B3%E9%A2%91-funboost_%E9%9F%B3%E9%A2%91.mp4">
163
+ 您的浏览器不支持音频播放。
164
+ </audio>
165
+
138
166
 
139
167
  ### 1.0.0 funboost 框架安装方式
140
168
 
@@ -156,6 +184,36 @@ pip install funboost --upgrade
156
184
  它证明了一个框架可以既功能丰富又极其易用,这是对传统Python框架设计的一次巧妙超越。
157
185
  只需要一行`@boost`代码即可分布式执行`python`一切任意函数,99%用过`funboost`的`pythoner` 感受是 方便 高速 强大 自由。
158
186
 
187
+
188
+
189
+ #### funboost的适用场景:
190
+ ```
191
+ `funboost`是python函数加速器,框架包罗万象,一统编程思维,兼容50% `python`编程业务场景,适用范围广,任何新老项目都能用到。
192
+ `funboost` 用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
193
+ ```
194
+
195
+ ```
196
+ 需要分布式? 好,funboost支持40多种消息队列,任何只要是稍微小有名气的消息队列和甚至任务框架,funboost全都支持.
197
+ 需要并发? 好,那就把Python所有的并发模式(线程、协程、多进程)都给你,并且让它们可以叠加。
198
+ 需要可靠性? 好,那就把消费确认(ACK)、自动重试、死信队列(DLQ)、断点续爬做到极致,让你无惧任何宕机。
199
+ 需要控制力? 好,那就给你精准的QPS控频、分布式控频、定时任务、延时任务、超时杀死、任务过滤等三十多种控制武器。
200
+ 需要监控? 好,那就给你一个开箱即用的Web UI,让你对任务状态、队列情况、消费者实例了如指掌。
201
+ 需要自由? 好,那就让你用最普通的Python函数,不侵入你的代码,不规定你的项目结构,让你随时能用,随时能走。
202
+ ```
203
+
204
+ #### 有人问 funboost 是做什么的? 怎么回答最合适?
205
+
206
+ 这个问题很难精确的一句话概括回答,因为funboost是万能框架,几乎所有的python编程业务场景都能用到,答案是发散的不是唯一的。
207
+
208
+ 发散的答案, 见文档 6.0b 章节 [https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#b-funboost](https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#b-funboost)
209
+
210
+
211
+ #### 最最最重要的第一个问题: "funboost这个框架怎么样呀,值得我学习使用吗?"
212
+
213
+ 如果选择学习使用了一个 用途狭窄 功能不好 性能不好 用法复杂 写法不自由 的框架,简直是浪费时间浪费生命.
214
+
215
+ 问题答案, 见文档 6.0 章节 [https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#funboost](https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#funboost)
216
+
159
217
  #### funboost与celery的理念区别
160
218
  **共同点:**
161
219
  ```
@@ -166,11 +224,15 @@ pip install funboost --upgrade
166
224
 
167
225
  **区别:**
168
226
  ```
169
- `celery`是`围绕celery框架组织代码,属于重型奴役框架`,你围绕`celery`项目结构和`celery app`这样中央app实例 转,去新增定义`@app.task`函数, app才是一等公民,task函数是二等公民
170
- `funboost`是`函数增强器,属于轻型自由框架`,你可以对任意项目任意位置的新旧函数加上`@boost`装饰器,是给你函数赋能插上强大翅膀,用户不需要围绕`funboost`或某个中央app实例来组织代码结构,用户函数自身就是一等公民
227
+ `celery`是`围绕celery框架组织代码,属于重型奴役框架`,你围绕`celery`项目结构和`celery app`这样中央app实例 转,去新增定义`@app.task`函数,
228
+ app才是一等公民,task函数是二等公民
229
+
230
+ `funboost`是`函数增强器,属于轻型自由框架`,你可以对任意项目任意位置的新旧函数加上`@boost`装饰器,是给你函数赋能插上强大翅膀,
231
+ 用户不需要围绕`funboost`或某个中央app实例来组织代码结构,用户函数自身就是一等公民
171
232
 
172
233
  2个框架最显而易见明显差别就是 `funboost` 无需 `@app.boost` 而是直接`@boost`,这个小区别,造成影响深远的框架用法和理念区别.
173
- `funboost`任务控制功能更多,支持broker中间件种类更多,并发方式更多,发布性能超越celery 22倍,消费性能超越 celery 46倍,性能是高几个数量级的断崖式遥遥领先,但反而使用比celery简单得多.
234
+ `funboost`任务控制功能更多,支持broker中间件种类更多,并发方式更多,发布性能超越celery 22倍,消费性能超越 celery 46倍,
235
+ 性能是高几个数量级的断崖式遥遥领先,但反而使用比celery简单得多.
174
236
  ```
175
237
 
176
238
  #### **funboost 支持的并发模式:**
@@ -185,11 +247,8 @@ pip install funboost --upgrade
185
247
  并且`funboost` 将 `mysql cdc` 这种`mysql binlog`变化捕获作为`broker`,使得`funboost`可以是事件驱动的,远超`celery`的理念.
186
248
  `funboost` 还轻松内置了将各种三方消费框架作为`broker`,例如直接将 `celery` `dramatiq` `huey` `rq` `nameko` 作为`broker`,使用这些框架的核心来执行用户的函数
187
249
  ```
188
- #### **funboost的适用场景:**
189
- ```
190
- `funboost`是python函数加速器,框架包罗万象,一统编程思维,兼容50% `python`编程业务场景,适用范围广,任何新老项目都能用到。
191
- `funboost` 用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
192
- ```
250
+
251
+
193
252
 
194
253
 
195
254
  #### **funboost 学习难吗?**
@@ -1,8 +1,8 @@
1
- funboost/__init__.py,sha256=8kd6cYLc0abvVhKKfGN2yyx9auqp_CwSInI7k-cy9ZI,4093
1
+ funboost/__init__.py,sha256=GMXI5W_YnGihr8vMa7ljaQtMuv8JiAdoCtx2zv1DItc,4093
2
2
  funboost/__init__old.py,sha256=9Kv3cPLnPkbzMRnuJFVkPsuDdx1CdcSIuITkpdncZSc,20382
3
3
  funboost/__main__.py,sha256=BetXBv7PkVeeK-UENiFq_KEEIzvObMI0rd8S1DHRdLU,1139
4
- funboost/constant.py,sha256=tgoui4EVwnAMMzA9qshqyRKS1oi90bYcFVNu0Ss_Jc4,14895
5
- funboost/funboost_config_deafult.py,sha256=9kbX6rmxcKp2CxNZoGpNYVVQNI48XjE4xJrEz6q61qo,6795
4
+ funboost/constant.py,sha256=-XDTml8Qz0ak_yNyWZ9jLRlXFOWltustSnRmKLx51ag,15174
5
+ funboost/funboost_config_deafult.py,sha256=Zqb6zsK_eSzG2u-UOo5s_g4JAj_OykzCGSfUwDcq6f4,6637
6
6
  funboost/set_frame_config.py,sha256=U-2_02JYyT8N8v2juZLwbUSCHJPo-hyDOiK5Zz_4J8s,14552
7
7
  funboost/assist/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
8
  funboost/assist/celery_helper.py,sha256=COMCoCM1oagcnOTaYEyKXwJTiNW0kkbKLp5TB_JvxCc,6518
@@ -36,72 +36,76 @@ funboost/concurrent_pool/backup/async_pool_executor_back.py,sha256=x0pyPgxzTENOs
36
36
  funboost/concurrent_pool/backup/async_pool_executor_janus.py,sha256=OHMWJ9l3EYTpPpcrPrGGKd4K0tmQ2PN8HiX0Dta0EOo,5728
37
37
  funboost/concurrent_pool/backup/grok_async_pool.py,sha256=3DgyB2aT0iHakb-pxd51WRKGIF7EKNNcX_ogDTF2hik,5825
38
38
  funboost/consumers/__init__.py,sha256=ZXY_6Kut1VYNQiF5aWEgIWobsW1ht9YUP0TdRZRWFqI,126
39
- funboost/consumers/base_consumer.py,sha256=YSYhVMUuv5V2nYZQBd-wDVdfDBTXTtqUfv25VasixKQ,90359
40
- funboost/consumers/celery_consumer.py,sha256=6BPZa2O36BQFVu7uWuuFCfJTTaw-36DJJPSpvEbamU8,9371
39
+ funboost/consumers/base_consumer.py,sha256=U0A95OOoJe9WlwdyIBX3Y7Z8cEtE93xfGc_wCwemDQo,90413
40
+ funboost/consumers/celery_consumer.py,sha256=Xn4Cr2dg_jzHbi7P3A6JcRMh1tu3YihaElFuV9DBe-s,9307
41
41
  funboost/consumers/confirm_mixin.py,sha256=5xC9AAQr_MY4tbSed8U-M6tOVmh69Qv9X0ld0JLT9Tk,6185
42
- funboost/consumers/dramatiq_consumer.py,sha256=ozmeAfeF0U-YNYHK4suQB0N264h5AZdfMH0O45Mh-8A,2229
42
+ funboost/consumers/dramatiq_consumer.py,sha256=OvpzcpKg6FhYfzCZCNB11totUOwsDOyBr6Y1H826rwo,1916
43
43
  funboost/consumers/empty_consumer.py,sha256=qbkQX2Qlw2Wm8dFEJqjSEEvTA-uh184sqQbFo_5EOiI,1501
44
44
  funboost/consumers/faststream_consumer.py,sha256=4UEYGSjUwJElhy4ZGzgL7QhYVCbdVGjyZ6QuM-F0oVA,2361
45
- funboost/consumers/grpc_consumer.py,sha256=rytrYXslxNQdWrmct1pdV4E3Rxkcju3hJc6UVh3gLYY,3498
46
- funboost/consumers/http_consumer.py,sha256=EZiZYo14BoevFK0g1EzebTBafLSCx-CZf5c5vtWmhW4,5605
45
+ funboost/consumers/grpc_consumer.py,sha256=DAAfPMxXWJV34cM_iR_tsolcvvTtNoqdP34YaTExBBY,3425
46
+ funboost/consumers/http_consumer.py,sha256=UPzNz6BrUv9EENxVvRBuwAZ2n21nwvnobIkYHi_FQoM,5532
47
47
  funboost/consumers/http_consumer000.py,sha256=PiiSLSQB-hHgS1vAn8DoHD2siC3zO6_kKjVW0g6AFIc,4379
48
- funboost/consumers/http_consumer_aiohttp_old.py,sha256=kyqDYQT3kkDBSkQN5LhoTHHUJBYd2mPQcz3D7QMIGeU,4873
48
+ funboost/consumers/http_consumer_aiohttp_old.py,sha256=pAnJ5yojQ6Gl97hoYflbWrsUCKzHBgL7QumQ8NHEq0g,4800
49
49
  funboost/consumers/httpsqs_consumer.py,sha256=kaqOcrKMLrSR27XqeiheRDmpF1KDVDghgbHcefTjqt8,1171
50
- funboost/consumers/huey_consumer.py,sha256=cW10ZPxdZQzUuJwdqQpJIRPTj2vCbZS0uXFJ7L8bpa4,1843
51
- funboost/consumers/kafka_consumer.py,sha256=fCcClME4q_MN5Yoz_JycZhmm9fvPbh96DTG_vX7KtPU,4406
52
- funboost/consumers/kafka_consumer_manually_commit.py,sha256=XbExZKewuxt-z8JFo_yV9yjjw7rDbTK0F20V84Y6E_A,9929
53
- funboost/consumers/kombu_consumer.py,sha256=ZbzCiKQDZtbD_aK7aWxSvzARYjNuHVlyef4Feb4R7q0,7938
50
+ funboost/consumers/huey_consumer.py,sha256=L64GxRKQ25VOKt71uB3qn30qRwA9aDqjUKVaYjpe_fw,1656
51
+ funboost/consumers/kafka_consumer.py,sha256=T9PSo2h9TmImFAsKFCAyz79nxScLwf7R_HNNc6uZmHo,4139
52
+ funboost/consumers/kafka_consumer_manually_commit.py,sha256=HZWT2EOriDWV3nPu3apkx_h76goUYxCchn7l56zT760,9782
53
+ funboost/consumers/kombu_consumer.py,sha256=UsCv0FdZ5sbzRJ9_eV_rMoZPp70JpH6Rqr5KMI9co0w,6325
54
54
  funboost/consumers/local_python_queue_consumer.py,sha256=4Cel1WaNwbRpDux22USP8is5R9__A_-LlqyHjcw02Z4,1160
55
55
  funboost/consumers/memory_deque_consumer.py,sha256=tTwOkrB9GdySOQstVLnU4hnBnap6rafCeoXhmV0TI5c,1110
56
56
  funboost/consumers/mongomq_consumer.py,sha256=e1Cupe-Cb2LUuJlQhER6NecrvK7FyzKKZ2HxyfOI-OY,1119
57
57
  funboost/consumers/mqtt_consumer.py,sha256=iLWKxe0CjKHUYrE6YMWNJHto0tD3siUAvZl9ssNsz_s,2297
58
- funboost/consumers/mysql_cdc_consumer.py,sha256=bIHqiEZhJyUYwfIT3QXdHWI_ipHhzIUOh7ZCMTd9m3E,4059
58
+ funboost/consumers/mysql_cdc_consumer.py,sha256=LfiQfKGwhMqPVEtzMUPtkBfX2FXm-_5NB_oXVXSLdtE,3972
59
59
  funboost/consumers/nameko_consumer.py,sha256=Qhl2FmrIjzjXLkIdMLQdhZ8GmrhiuoEss7cwGHCFT7c,2213
60
60
  funboost/consumers/nats_consumer.py,sha256=yv_8SC4zdw5UXBpYooFMXHaC-mNzws5IK0woxHWr1NM,1119
61
61
  funboost/consumers/nsq_consumer.py,sha256=KcP4wT656LyvuwyQXnVp0B6DwYvnZ6z_Vyzt0KjHAQc,1518
62
62
  funboost/consumers/peewee_conusmer.py,sha256=VqbSu9AdKO4_wgu0XhTWRO3VeWctecbbz2X_V04_kXw,1115
63
63
  funboost/consumers/persist_queue_consumer.py,sha256=PUfelfW84YiqcsbcIAveWMC50rw2DScZ3u_aiaS0Kk8,1015
64
- funboost/consumers/pulsar_consumer.py,sha256=eorN61kCvP3yg4fNAB3ZCfqpJJxPnAN6PJY48uiYX5Y,2385
65
- funboost/consumers/rabbitmq_amqpstorm_consumer.py,sha256=8jghoMSwY1YITBV9hofJkjzhQrlFGVXFfvZPefJPhiU,2542
64
+ funboost/consumers/pulsar_consumer.py,sha256=SSAUQ46IQrSiMzsIEA8MB-NylKAbZDIu52_kj68LJN8,2400
65
+ funboost/consumers/rabbitmq_amqpstorm_consumer.py,sha256=-vqH5g-XTT0Yo5wiB4dxJfqXlEJJQkCLvOVu4T5DbRI,2270
66
+ funboost/consumers/rabbitmq_complex_routing_consumer.py,sha256=15VQGmmOqF8d2wFIcdW5mpD7DlBA8c3pO0F1Fou9JZM,2669
66
67
  funboost/consumers/rabbitmq_pika_consumer.py,sha256=51IkRUSR0v2v7BUlA8oInx81VGeO5OaD2pk0UXHdY78,5408
67
68
  funboost/consumers/rabbitmq_pika_consumerv0.py,sha256=rIQToBTBqGdjnzMhg0vyZMY87NtK_Uw8ggiTu39JQ_w,4777
68
69
  funboost/consumers/rabbitmq_rabbitpy_consumer.py,sha256=xxINY037pmgF3_lJA-zhf9qUIUx6DdqC7tsUOQL3dL4,1330
69
70
  funboost/consumers/redis_brpoplpush_consumer.py,sha256=HA3WYKNHuSFZJwTe5EEMFAQfTCK6E2upyFnvdQReJug,2967
70
- funboost/consumers/redis_consumer.py,sha256=RdxJvWWQvQdjXWWdUebmgB7KRDWQBeF87Q9kd_DeUZk,2735
71
- funboost/consumers/redis_consumer_ack_able.py,sha256=CiPIo-ToujSUy1uvznWc1QuxBfeOyOmYbH6P77r9apI,7429
72
- funboost/consumers/redis_consumer_ack_using_timeout.py,sha256=E-7Ci3yb1-THvGoqDNyHJm_zYThIcacHEuUQbPU5e-0,4228
73
- funboost/consumers/redis_consumer_priority.py,sha256=C-ftnlGPPoB7YV3GvwLu9POVGDn_GKlBqO6NlsZ-hdY,5566
71
+ funboost/consumers/redis_consumer.py,sha256=j3sN0eGEPFWtJfEqGzfu_V9tGUmNWpj4AuRX2U51Mdw,2607
72
+ funboost/consumers/redis_consumer_ack_able.py,sha256=A9ZpxxQ0rzTwyie2lB1kfAundkxsrgqJcU9osb3sJbM,7362
73
+ funboost/consumers/redis_consumer_ack_using_timeout.py,sha256=IN-EI18qhwOA6I2WqAApQaSIV0j9pjVIUwVPMLdRH_4,3563
74
+ funboost/consumers/redis_consumer_priority.py,sha256=cJc5sq2b7p2BMu7JtFSHJ2A15bQTYvcy6tszFfOzBuI,5360
74
75
  funboost/consumers/redis_consumer_simple.py,sha256=trPrMHSVU1Y_fY-xz5tFFmt1zjV-9_joPYRHqvyZnL8,874
75
76
  funboost/consumers/redis_filter.py,sha256=GYx4dTgTv05oyP-2fKLpOeRdzot-J9ZO7H_8fsbhHfQ,8810
76
77
  funboost/consumers/redis_pubsub_consumer.py,sha256=8V8EqobKpEXzpsQx_H3A-JBKLsWOsE0n16g62tUMMYY,1122
77
- funboost/consumers/redis_stream_consumer.py,sha256=gkdP-BxU8U6cE5bVBVQCfgAMeQmsz6gQyQgqi6r2kf8,6553
78
+ funboost/consumers/redis_stream_consumer.py,sha256=oDPoG263xzfA_Yw2WY7oBWF1O9F9Hc2I45St1Gmacyg,6415
78
79
  funboost/consumers/rocketmq_consumer.py,sha256=QCAdw2UBGPlakTcXdiykvPx4cl9yDMSib44BbmzBHfY,1717
79
80
  funboost/consumers/rq_consumer.py,sha256=JX84k6Jiv4pBiQMmnhdJ7s7Qz4ub5TWS4T7qTF-WdlM,876
80
81
  funboost/consumers/sqlachemy_consumer.py,sha256=PawUaNV7EZWBQVWXkGaXy1Z16hUgxU4BLDeUFR83ewM,1300
81
- funboost/consumers/tcp_consumer.py,sha256=Gf4Bn9U4PCV10LIStBmQXua755hRIGUUHl284BkVdYk,2263
82
+ funboost/consumers/tcp_consumer.py,sha256=65QyJMZ4uHSIVvQsIUnAIB5M7tWrUt9fV_oXrOQIhAY,2172
82
83
  funboost/consumers/txt_file_consumer.py,sha256=Uelk6q8hYPudofJXMTaCmg_td7z7HAcZGdoqgRgolOs,1261
83
- funboost/consumers/udp_consumer.py,sha256=M0tQbpX1yqUKYcdUxlMtaT5ubxqAcUcWUH01DY0MfTc,1867
84
- funboost/consumers/zeromq_consumer.py,sha256=NBQLtEg4m9o6uszsFI9aPlCCghZ0Wq5kwQn3Ody-xmQ,4444
84
+ funboost/consumers/udp_consumer.py,sha256=SN5ec2q3j8xT3JHa7BDDFkd8fxzMOOyUrqY_TbWkbgo,1776
85
+ funboost/consumers/zeromq_consumer.py,sha256=shbQpTMil4bvWkl1MHg7BBwQcKwpM917gB2_3s7gSzg,4392
85
86
  funboost/contrib/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
87
  funboost/contrib/api_publish_msg.py,sha256=6U7K1rW3vACf8PvxraHqcDh8JQqcDBf5njEWo1P_xg0,2648
87
88
  funboost/contrib/django_db_deco.py,sha256=RJaRUYdVqS10gWqM4Ncs0Lngox52SUaqIIn5GK5a8Uo,865
88
89
  funboost/contrib/queue2queue.py,sha256=4-28ULM7PTbmbOw8DG9rjlMUQCDkJNcUqkmdHAkGg2c,4898
89
90
  funboost/contrib/redis_consume_latest_msg_broker.py,sha256=ESortBZ2qu_4PBCa3e3FeL2k_PClZNb74_v55HV-BOg,1902
90
- funboost/contrib/save_result_status_to_sqldb.py,sha256=AxvD7nHs4sjr9U0kwEZzyPKrsGdU_JzEgzzhh_V1_4w,4071
91
91
  funboost/contrib/cdc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
92
  funboost/contrib/cdc/mysql2mysql.py,sha256=J7jLHTB27WO3iMMNU4s556b_p0x51dgnCz5c7eVWtKk,2317
93
+ funboost/contrib/save_function_result_status/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
+ funboost/contrib/save_function_result_status/save_result_status_to_sqldb.py,sha256=Q8LBYDHQlmL2ZyYDyKIiecP1AmvU-MWHYTiQ0AZIQMk,3005
95
+ funboost/contrib/save_function_result_status/save_result_status_use_dataset.py,sha256=O5OWw5SiFZ2Uxwj6QCdCuoXtfstm1886PxbbmlOi9xY,1686
93
96
  funboost/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
94
97
  funboost/core/active_cousumer_info_getter.py,sha256=RF_xJMCskQImWwi7aLcIVipsp5KgDZZ4vtxBEhoPeTI,16086
95
- funboost/core/booster.py,sha256=piykdtMO2jwnnEzuBcyPuQ5MZNZls1mVJD4SjXRkAqA,22811
98
+ funboost/core/booster.py,sha256=dAk1oUWkpvlBsOas18UvF6GBjhrT1eOeL4TE5XKBTFo,23423
99
+ funboost/core/broker_kind__exclusive_config_default_define.py,sha256=OOkQd5RMaSHaqS4eeBQp08Obu04jhoOwtYL5SQg1RS4,7680
96
100
  funboost/core/current_task.py,sha256=6f7IbGZaSnojVxIeyXPkk5LE2yUiRRTJBjTNqwLL2WU,7270
97
101
  funboost/core/exceptions.py,sha256=twp5eAUCds3sWh3Ar7WVNhCn3y_TFqb-Ajwbjb9scGU,1564
98
102
  funboost/core/fabric_deploy_helper.py,sha256=foieeqlNySuU9axJzNF6TavPjIUSYBx9UO3syVKUiyY,9999
99
103
  funboost/core/funboost_config_getter.py,sha256=b5nAdAmUxahskY-ohB7ptf2gKywFlDA0Fq1cWroxxbs,384
100
- funboost/core/funboost_time.py,sha256=Wz7Zto7RrDoJk70-qTPncTJsIwA7HmvJBmgQLqXWzhU,5538
101
- funboost/core/func_params_model.py,sha256=n7fDmmdMeGcFqeqq26QmP9wU36_BqX-5ogIVSV-U9EY,26380
104
+ funboost/core/funboost_time.py,sha256=0Iyx5wRYLsHiq4KcoIwVwMkktgu388rV0kP1AQuSlgU,1951
105
+ funboost/core/func_params_model.py,sha256=QeDyEvC_1O_L_Hj6t9CloUy-vp7OfCDbDz4Db0sASog,26551
102
106
  funboost/core/function_result_status_config.py,sha256=PyjqAQOiwsLt28sRtH-eYRjiI3edPFO4Nde0ILFRReE,1764
103
107
  funboost/core/function_result_status_saver.py,sha256=LMLF6AROCaaYB1HIXT13L5NB6r-yezaCGeB9VSSxnQ0,9871
104
- funboost/core/helper_funs.py,sha256=7Pe9ax0GmS5cf3jPGPJPEjL0lrF5JB3g00DYsxX2agQ,2800
108
+ funboost/core/helper_funs.py,sha256=tc4gLj9Lsnb39U1h1276NjjnuMUqfVW57JKZ6wXwrkI,2766
105
109
  funboost/core/kill_remote_task.py,sha256=lfclwtNhMDGLKX2UCpK_wyhnKPKkoxCZxesRA6KHOrc,8186
106
110
  funboost/core/lazy_impoter.py,sha256=yyJqwmbJziMfRTESn9magqso-_8ppl8yzHFCS5qzxkI,5104
107
111
  funboost/core/loggers.py,sha256=YY69MAP_o0Eq-CHp5UNWrKDYpoJsiHZ92E2i_fxcxRI,2358
@@ -114,7 +118,7 @@ funboost/core/cli/discovery_boosters.py,sha256=mbEyv0bUIGcmgkfXLI_Q1IK1QvVwKyro8
114
118
  funboost/core/cli/funboost_cli_user_templ.py,sha256=XUpKLxRKtYfebPUM8wii64kB0HW8L7j9LnRpT0xCfQI,2243
115
119
  funboost/core/cli/funboost_fire.py,sha256=n2Zny_UJ7zx4kRXD_YzNBHqdHMc7n0SE7gL28tuwiPU,5387
116
120
  funboost/factories/__init__.py,sha256=s7kKKjR1HU5eMjPD6r5b-SXTVMo1zBp2JjOAtkyt5Yo,178
117
- funboost/factories/broker_kind__publsiher_consumer_type_map.py,sha256=8mkp4hVYKGaHsrJPyqKykWbU-OuiEYdMdT4Eb0mS7sM,10873
121
+ funboost/factories/broker_kind__publsiher_consumer_type_map.py,sha256=S2wloeAngjfEoSRI8MtfhaDxceo6cEh6jBdM9D42mgc,11282
118
122
  funboost/factories/consumer_factory.py,sha256=3RbdcH5fNAnumDkZhtRpDP7RsfJw50NLCgl_-YgJclE,1494
119
123
  funboost/factories/publisher_factotry.py,sha256=W5giVsQnT6pHRIC6nRANj0-XBovkuzkl0Zqcb4u5o_U,2529
120
124
  funboost/function_result_web/app.py,sha256=bEr9vdceU2cX4ZKqHDXUOQVKlobSLI_qzzzE-A3DABo,14895
@@ -166,7 +170,7 @@ funboost/function_result_web/static/js_cdn/bootstrap/3.3.7/js/bootstrap.min.js,s
166
170
  funboost/function_result_web/static/js_cdn/tabulator-tables@5.5.0/dist/js/tabulator.min.js,sha256=4pzeFofM4NClu9YOgnul_3io2X31ZB3HtdeKOb3J1UU,390787
167
171
  funboost/function_result_web/templates/about.html,sha256=m5ZUVmAbvgBdXXYJRGS7JLHQZMB6RuPu-9PsBp4Hwvc,2416
168
172
  funboost/function_result_web/templates/conusme_speed.html,sha256=0Txe47pwad8166BzivsrHEIb0cUS-FlQBrBNYrciT1g,9136
169
- funboost/function_result_web/templates/fun_result_table.html,sha256=KBi9XBBgF3lpgf7N7IQTE0dt-8uz-wg8dj5BYhO_ooE,18984
173
+ funboost/function_result_web/templates/fun_result_table.html,sha256=uF5bviMAAHOFbYy1rszAoZzK0WjOCOuXH759Ocugf8U,18987
170
174
  funboost/function_result_web/templates/index.html,sha256=2eHJau1boHAu1N3VMOax5bzUP6UCBGN0SyFrKlDRryM,9887
171
175
  funboost/function_result_web/templates/index_backup.html,sha256=qwUWHyQFrbSVSnZUjU5E9Zxy6a9mEJF_BdH0HeUxXOU,20045
172
176
  funboost/function_result_web/templates/login.html,sha256=q37dj7O0LeyiV38Zd5P1Qn_qmhjdFomuYTRY1Yk48Bo,2007
@@ -175,7 +179,7 @@ funboost/function_result_web/templates/rpc_call.html,sha256=qFznWysEFTvJKUQYqnJa
175
179
  funboost/function_result_web/templates/running_consumer_by_ip.html,sha256=2Rcxbi80c1JEIRCnNe1MG55axdb0vBlkB6yL9rxw53c,10248
176
180
  funboost/function_result_web/templates/running_consumer_by_queue_name.html,sha256=r5EYlfp0fE8RFWzI0k3K571EUmirwcPX9NdnSEfAWiQ,10301
177
181
  funboost/publishers/__init__.py,sha256=xqBHlvsJQVPfbdvP84G0LHmVB7-pFBS7vDnX1Uo9pVY,131
178
- funboost/publishers/base_publisher.py,sha256=THtqnyemMKaS13KC1B66MeqzzFn0JNOQRFlUwWzSYkQ,19255
182
+ funboost/publishers/base_publisher.py,sha256=BjuKTTA5a-VxZuKqMopWWy_IpMWoB-DypGcsNL3wheg,19533
179
183
  funboost/publishers/celery_publisher.py,sha256=uc9N1uLW74skUCw8dsnvxORM2O3cy4SiI7tUZRmvkHA,2336
180
184
  funboost/publishers/celery_publisher000.py,sha256=2XLOyU2__vlIUTi5L15uf0BJqAIjxbc3kCLIRDSOY9w,3966
181
185
  funboost/publishers/confluent_kafka_publisher.py,sha256=B4rF6gljixOMyN6L2eL1gzqTv97uoy7TTzgKUhHljEQ,4749
@@ -199,7 +203,8 @@ funboost/publishers/nsq_publisher.py,sha256=ySUUyfAMRPSozWYGzAgOMCR_MF0J1iZTDFVU
199
203
  funboost/publishers/peewee_publisher.py,sha256=RsYAqBKf_ZLxkGJeZPWExzG4cpUac7weCeNhcSQ9hZc,1095
200
204
  funboost/publishers/persist_queue_publisher.py,sha256=wuKUU3DRiDy4Ab67m9_0ee65uXhqHtfnVWY43JuQFdY,2594
201
205
  funboost/publishers/pulsar_publisher.py,sha256=-Qka_oTtpiBMEzu8oqQJteVbGuWpDHd0sgQoNd7N_2k,1248
202
- funboost/publishers/rabbitmq_amqpstorm_publisher.py,sha256=BUGvfjm3R8Vj-ZMw5QogkVR-pHh2JNIoXJBR6_w2I2E,3218
206
+ funboost/publishers/rabbitmq_amqpstorm_publisher.py,sha256=_zhdiS-aeOvfw3tiNM3CyC9XOUBBz--HlS98-8ecgc4,3310
207
+ funboost/publishers/rabbitmq_complex_routing_publisher.py,sha256=4jMO579U2OWnVTyh_aNQTt44bgVhAa7pXUaJqjigMGs,4733
203
208
  funboost/publishers/rabbitmq_pika_publisher.py,sha256=QygZv96tYmfJcs8Dukv3J_x134gvCOzGkILQRE6toU0,2325
204
209
  funboost/publishers/rabbitmq_rabbitpy_publisher.py,sha256=GGXPKxE6-mAjqMIKqwvR9d7L-zuJQcQoU9uRsQLNGas,1953
205
210
  funboost/publishers/redis_publisher.py,sha256=EDnQSt73FE2PGq0WHyvsMuaoD_6wp_tuZveWrMF7iLY,3439
@@ -241,7 +246,7 @@ funboost/utils/monkey_patches.py,sha256=vGmtPuTwNLbS8T3gpufSC_cD8_Vnp85roZrCpJZU
241
246
  funboost/utils/mqtt_util.py,sha256=BfCmyYwI-B8VL9499_IuYlJDCbv6ZhwyWThMf8dANOU,3199
242
247
  funboost/utils/paramiko_util.py,sha256=rHJm9Cp1YX24ew3jT5iR0qPqv-WJLd7VhRoMkHphY60,5244
243
248
  funboost/utils/rabbitmq_factory.py,sha256=ifDCn2RxSGL4MccmktJc5FYQhAcboCgHBlEo3WGpq3g,2910
244
- funboost/utils/redis_manager.py,sha256=4NGrO8fZFjjYP-GCHQQJGuygbgXOfuwwsbPv1ZDHah4,3892
249
+ funboost/utils/redis_manager.py,sha256=rhXjYTN22--JD6ZgKW2dnTtfZEmCUT8QdXmBpjP3gks,4113
245
250
  funboost/utils/redis_manager_old.py,sha256=c3RBXN6dM3kjVBqkCdotpZuYmFs4d9emfp5iJgC61Us,5516
246
251
  funboost/utils/resource_monitoring.py,sha256=EWq7hqQLM2hYpbkv4sVw9YcpHLxfg8arcGz-QXw9lf0,5710
247
252
  funboost/utils/restart_python.py,sha256=bFbV0_24ajL8hBwVRLxWe9v9kTwiX1fGLhXRroNnmgQ,1418
@@ -327,9 +332,8 @@ funboost/utils/func_timeout/dafunc.py,sha256=Yy98BzsmgWi07ja5zM4ElLwb1h8NXahxtRG
327
332
  funboost/utils/func_timeout/exceptions.py,sha256=tUEaspemq_dS460EQvUMMSxeeyjIbgfEHIdxIC6ZhaU,3974
328
333
  funboost/utils/func_timeout/py2_raise.py,sha256=9tpZLQ3-zIgU_ixazydwZmw8rFg7ybjI9alNYfSvwRk,169
329
334
  funboost/utils/func_timeout/py3_raise.py,sha256=Odvg1FtXTEC--Ru1EIfsHASamBpOm9hdXY7OnlEUObA,280
330
- funboost-50.3.dist-info/LICENSE,sha256=9EPP2ktG_lAPB8PjmWV-c9BiaJHc_FP6pPLcUrUwx0E,11562
331
- funboost-50.3.dist-info/METADATA,sha256=Z2Zsq9Y2qleAbv1r1R22msVkRqIUQmmsogNzv0p_j9k,42216
332
- funboost-50.3.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
333
- funboost-50.3.dist-info/entry_points.txt,sha256=yMSSAGRzRAAhGyNNQHw24MooKlDZsaJ499_D6fPl58A,96
334
- funboost-50.3.dist-info/top_level.txt,sha256=K8WuKnS6MRcEWxP1NvbmCeujJq6TEfbsB150YROlRw0,9
335
- funboost-50.3.dist-info/RECORD,,
335
+ funboost-50.4.dist-info/METADATA,sha256=JS71ctdQ-jYfAkdDumpE6g5Ve1KDzHLE_xq9xttVBwI,44746
336
+ funboost-50.4.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
337
+ funboost-50.4.dist-info/entry_points.txt,sha256=yMSSAGRzRAAhGyNNQHw24MooKlDZsaJ499_D6fPl58A,96
338
+ funboost-50.4.dist-info/top_level.txt,sha256=K8WuKnS6MRcEWxP1NvbmCeujJq6TEfbsB150YROlRw0,9
339
+ funboost-50.4.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.2)
2
+ Generator: setuptools (80.9.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5