funboost 49.1__py3-none-any.whl → 49.3__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 (28) hide show
  1. funboost/__init__.py +1 -1
  2. funboost/concurrent_pool/async_helper.py +20 -1
  3. funboost/concurrent_pool/async_pool_executor.py +42 -60
  4. funboost/concurrent_pool/backup/async_pool_executor_back.py +4 -2
  5. funboost/constant.py +27 -3
  6. funboost/consumers/base_consumer.py +11 -6
  7. funboost/consumers/rocketmq_consumer.py +2 -2
  8. funboost/core/active_cousumer_info_getter.py +51 -4
  9. funboost/function_result_web/__pycache__/app.cpython-313.pyc +0 -0
  10. funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
  11. funboost/function_result_web/__pycache__/functions.cpython-313.pyc +0 -0
  12. funboost/function_result_web/app.py +16 -3
  13. funboost/function_result_web/app_debug_start.py +4 -0
  14. funboost/function_result_web/templates/queue_op.html +149 -192
  15. funboost/publishers/faststream_publisher.py +3 -2
  16. funboost/publishers/redis_publisher_priority.py +1 -1
  17. funboost/set_frame_config.py +2 -1
  18. funboost/timing_job/apscheduler_use_redis_store.py +8 -1
  19. funboost/timing_job/timing_job_base.py +20 -7
  20. funboost/timing_job/timing_push.py +7 -5
  21. funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -6
  22. funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -6
  23. {funboost-49.1.dist-info → funboost-49.3.dist-info}/METADATA +90 -23
  24. {funboost-49.1.dist-info → funboost-49.3.dist-info}/RECORD +28 -26
  25. {funboost-49.1.dist-info → funboost-49.3.dist-info}/LICENSE +0 -0
  26. {funboost-49.1.dist-info → funboost-49.3.dist-info}/WHEEL +0 -0
  27. {funboost-49.1.dist-info → funboost-49.3.dist-info}/entry_points.txt +0 -0
  28. {funboost-49.1.dist-info → funboost-49.3.dist-info}/top_level.txt +0 -0
@@ -1,9 +1,3 @@
1
- ---
2
- noteId: "6d97084045e411f0ab0bf59d9f569ed4"
3
- tags: []
4
-
5
- ---
6
-
7
1
  ## 这个文件夹被添加到 sys.path中去了。
8
2
 
9
3
  funboost __init__.py 第一行就把这个添加到 sys.path了,相当于 export PYTHONPATH 了。
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: funboost
3
- Version: 49.1
3
+ Version: 49.3
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
@@ -23,6 +23,7 @@ Classifier: Programming Language :: Python :: 3.9
23
23
  Classifier: Programming Language :: Python :: 3.10
24
24
  Classifier: Programming Language :: Python :: 3.11
25
25
  Classifier: Programming Language :: Python :: 3.12
26
+ Classifier: Programming Language :: Python :: 3.13
26
27
  Classifier: Programming Language :: Python :: 3 :: Only
27
28
  Classifier: Topic :: Software Development :: Libraries
28
29
  Description-Content-Type: text/markdown
@@ -67,8 +68,6 @@ Requires-Dist: dramatiq ==1.14.2 ; extra == 'all'
67
68
  Requires-Dist: huey ==2.4.5 ; extra == 'all'
68
69
  Requires-Dist: rq ==1.15.0 ; extra == 'all'
69
70
  Requires-Dist: kombu ; extra == 'all'
70
- Requires-Dist: eventlet ==0.33.3 ; extra == 'all'
71
- Requires-Dist: gevent ==22.10.2 ; extra == 'all'
72
71
  Requires-Dist: elasticsearch ; extra == 'all'
73
72
  Requires-Dist: gnsq ==1.0.1 ; extra == 'all'
74
73
  Requires-Dist: psutil ; extra == 'all'
@@ -80,6 +79,8 @@ Requires-Dist: rocketmq ; extra == 'all'
80
79
  Requires-Dist: zmq ; extra == 'all'
81
80
  Requires-Dist: pyzmq ; extra == 'all'
82
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'
83
84
  Requires-Dist: flask ; extra == 'all'
84
85
  Requires-Dist: flask-bootstrap ; extra == 'all'
85
86
  Requires-Dist: flask-wtf ; extra == 'all'
@@ -97,8 +98,6 @@ Requires-Dist: dramatiq ==1.14.2 ; extra == 'extra_brokers'
97
98
  Requires-Dist: huey ==2.4.5 ; extra == 'extra_brokers'
98
99
  Requires-Dist: rq ==1.15.0 ; extra == 'extra_brokers'
99
100
  Requires-Dist: kombu ; extra == 'extra_brokers'
100
- Requires-Dist: eventlet ==0.33.3 ; extra == 'extra_brokers'
101
- Requires-Dist: gevent ==22.10.2 ; extra == 'extra_brokers'
102
101
  Requires-Dist: elasticsearch ; extra == 'extra_brokers'
103
102
  Requires-Dist: gnsq ==1.0.1 ; extra == 'extra_brokers'
104
103
  Requires-Dist: psutil ; extra == 'extra_brokers'
@@ -110,6 +109,8 @@ Requires-Dist: rocketmq ; extra == 'extra_brokers'
110
109
  Requires-Dist: zmq ; extra == 'extra_brokers'
111
110
  Requires-Dist: pyzmq ; extra == 'extra_brokers'
112
111
  Requires-Dist: kafka-python ==2.0.2 ; extra == 'extra_brokers'
112
+ Requires-Dist: eventlet ==0.33.3 ; extra == 'extra_brokers'
113
+ Requires-Dist: gevent ==22.10.2 ; extra == 'extra_brokers'
113
114
  Requires-Dist: pulsar-client ==3.1.0 ; (python_version >= "3.7") and extra == 'extra_brokers'
114
115
  Provides-Extra: flask
115
116
  Requires-Dist: flask ; extra == 'flask'
@@ -159,8 +160,10 @@ Broker。funboost源码高扩展性的设计,造成“万物皆可为Broker”
159
160
  框架对代码没有入侵,可以加到任意已有项目而对项目python文件目录结构0要求,
160
161
  不像 celery django scrapy 这样的框架,要从一开始就开始规划好项目目录结构,如果不想用框架了,
161
162
  或者想改变使用其他框架框架,那么已经所写的代码组织形式就几乎成了废物,需要大改特改.
162
- 但是funboost完全不会这样,加上或去掉@boost装饰器,对你的项目影响为0,用户照常使用,
163
+ 但是funboost完全不会这样,就算是加上或去掉@boost装饰器,对你的项目影响为0,用户照常使用,
163
164
  所以用户可以对任意项目,任意时候,引入使用funboost或者去掉使用funboost,代码组织形式不需要发生变化.
165
+ (即使不想用funboost了,也不需要亲自去掉@boost装饰器,因为函数有@boost装饰器对函数自身的直接调用运行没有任何影响,
166
+ 用户照样可以直接例如 fun(x,y)是直接运行函数 , fun.push(x,y) 才是发送到消息队列)
164
167
 
165
168
  通过funboost web manager 管理系统,支持全面 查看 监控 管理 funboost的任务消费。
166
169
  </pre>
@@ -572,26 +575,32 @@ if __name__ == "__main__":
572
575
 
573
576
 
574
577
 
575
- ## 1.3.2 funboost丝滑连续启动多个函数消费
578
+ ## 1.3.2 funboost集中演示一个功能更多的综合例子
576
579
 
577
580
  ```python
578
581
 
582
+
579
583
  """
580
- 此代码
581
- 1.演示支持多个函数消费队列的无阻塞启动(consume不会阻塞主线程)
582
- 2.演示支持在一个消费函数内部向任意队列发布新任务,实现多级任务链
583
- 代码结构清晰,扩展性极强
584
+ 一个展示更全面 funboost 用法的例子
585
+ 包含了
586
+ 1.继承BoosterParams,为了每个装饰器少写入参
587
+ 2.rpc获取结果
588
+ 3.连续丝滑启动多个消费函数
589
+ 4.定时任务
584
590
  """
585
- from funboost import boost, BrokerEnum,BoosterParams,ctrl_c_recv,ConcurrentModeEnum
591
+ from funboost import boost, BrokerEnum,BoosterParams,ctrl_c_recv,ConcurrentModeEnum,ApsJobAdder
586
592
  import time
587
593
 
588
594
  class MyBoosterParams(BoosterParams): # 自定义的参数类,继承BoosterParams,用于减少每个消费函数装饰器的重复相同入参个数
589
- broker_kind: str = BrokerEnum.MEMORY_QUEUE
595
+ broker_kind: str = BrokerEnum.REDIS_ACK_ABLE
590
596
  max_retry_times: int = 3
591
597
  concurrent_mode: str = ConcurrentModeEnum.THREADING
592
598
 
593
599
 
594
- @boost(MyBoosterParams(queue_name='s1_queue', qps=1, ))
600
+ @boost(MyBoosterParams(queue_name='s1_queue', qps=1,
601
+ # do_task_filtering=True, # 可开启任务过滤,防止重复入参消费。
602
+ is_using_rpc_mode=True, # 开启rpc模式,支持rpc获取结果
603
+ ))
595
604
  def step1(a:int,b:int):
596
605
  print(f'a={a},b={b}')
597
606
  time.sleep(0.7)
@@ -600,20 +609,75 @@ def step1(a:int,b:int):
600
609
  return a+b
601
610
 
602
611
 
603
- @boost(MyBoosterParams(queue_name='s2_queue', qps=3, ))
604
- def step2(c:int,d:int,e:int):
612
+ @boost(MyBoosterParams(queue_name='s2_queue', qps=3,
613
+ max_retry_times=5,# 可以在此覆盖MyBoosterParams中的默认值,例如为step2单独设置最大重试次数为5
614
+ ))
615
+ def step2(c:int,d:int,e:int=666):
605
616
  time.sleep(3)
606
617
  print(f'c={c},d={d},e={e}')
607
618
  return c* d * e
608
619
 
609
620
 
610
621
  if __name__ == '__main__':
611
- for i in range(100):
612
- step1.push(i,i*2) # 向 step1函数的队列发送消息。
622
+ step1.clear() # 清空队列
623
+ step2.clear() # 清空队列
624
+
613
625
  step1.consume() # 调用.consume是非阻塞的启动消费,是在单独的子线程中循环拉取消息的。
614
626
  # 有的人还担心阻塞而手动使用 threading.Thread(target=step1.consume).start() 来启动消费,这是完全多此一举的错误写法。
615
- step2.consume() # 所以可以连续无阻塞丝滑的启动多个函数消费。
616
- ctrl_c_recv()
627
+ step2.consume() # 所以可以在当前主线程连续无阻塞丝滑的启动多个函数消费。
628
+ step2.multi_process_consume(3) # 这是多进程叠加了多线程消费,另外开启了3个进程,叠加了默认的线程并发。
629
+
630
+ async_result = step1.push(100,b=200)
631
+ print('step1的rpc结果是:',async_result.result) # rpc阻塞等待消step1的费结果返回
632
+
633
+ for i in range(100):
634
+ step1.push(i,i*2) # 向 step1函数的队列发送消息,入参和手动调用函数那样很相似。
635
+ step1.publish ({'a':i,'b':i*2},task_id=f'task_{i}') # publish 第一个入参是字典,比push能传递更多funboost的辅助参数,类似celery的apply_async和delay的关系。一个简单,一个复杂但强大。
636
+
637
+
638
+
639
+ """
640
+ 1.funboost 使用 ApsJobAdder.add_push_job来添加定时任务,不是add_job。
641
+ 2.funboost是轻度封装的知名apscheduler框架,所以定时任务的语法和apscheduler是一样的,没有自己发明语法和入参
642
+ 用户需要苦学apscheduler教程,一切定时都是要学apscheduler知识,定时和funboost知识关系很小。
643
+ 3.funboost的定时任务目的是定时推送消息到消息队列中,而不是定时直接在当前程序中执行某个消费函数。
644
+
645
+ 下面是三种方式添加定时任务,这些定时方式都是知名apscheduler包的定时方式,和funboost没关系。
646
+ """
647
+ # 方式1:指定日期执行一次
648
+ ApsJobAdder(step2,
649
+ job_store_kind='redis', # 使用reids作为 apscheduler的 jobstrores
650
+ is_auto_start=True, # 添加任务,并同时顺便启动了定时器 执行了apscheduler对象.start()
651
+ ).add_push_job(
652
+ trigger='date',
653
+ run_date='2025-06-30 16:25:40',
654
+ args=(7, 8,9),
655
+ id='date_job1',
656
+ replace_existing=True,
657
+ )
658
+
659
+ # 方式2:固定间隔执行
660
+ ApsJobAdder(step2, job_store_kind='redis').add_push_job(
661
+ trigger='interval',
662
+ seconds=30,
663
+ args=(4, 6,10),
664
+ id='interval_job1',
665
+ replace_existing=True,
666
+ )
667
+
668
+ # 方式3:使用cron表达式定时执行
669
+ ApsJobAdder(step2, job_store_kind='redis').add_push_job(
670
+ trigger='cron',
671
+ day_of_week='*',
672
+ hour=23,
673
+ minute=49,
674
+ second=50,
675
+ kwargs={"c": 50, "d": 60,"e":70},
676
+ replace_existing=True,
677
+ id='cron_job1')
678
+
679
+ ctrl_c_recv() # 用于阻塞代码,阻止主线程退出,使主线程永久运行。 相当于 你在代码最末尾,加了个 while 1:time.sleep(10),使主线程永不结束。apscheduler background定时器守护线程需要这样保持定时器不退出。
680
+
617
681
 
618
682
  ```
619
683
 
@@ -681,14 +745,17 @@ python比其他语言更需要分布式函数调度框架来执行函数,有
681
745
 
682
746
  ## 1.6 funboost支持支持celery框架整体作为funboost的broker (2023.4新增)
683
747
  ```
684
- 见11.1章节代码例子,celery框架整体作为funboost的broker,funboost的发布和消费将只作为极简api,核心的消费调度和发布和定时功能,都是由celery框架来完成,funboost框架的发布和调度代码不实际起作用。
748
+ 见11.1章节代码例子,celery框架整体作为funboost的broker,funboost的发布和消费将只作为极简api
749
+ 核心的消费调度和发布和定时功能,都是由celery框架来完成,funboost框架的发布和调度代码不实际起作用。
685
750
  用户操作funboost的api,语法和使用其他消息队列中间件类型一样,funboost自动化操作celery。
686
751
 
687
752
  用户无需操作celery本身,无需敲击celery难记的命令行启动消费、定时、flower;
688
753
  用户无需小心翼翼纠结亲自使用celery时候怎么规划目录结构 文件夹命名 需要怎么在配置写include 写task_routes,
689
- 完全不存在需要固定的celery目录结构,不需要手动配置懵逼的任务路由,不需要配置每个函数怎么使用不同的队列名字,funboost自动搞定这些。
754
+ 完全不存在需要固定的celery目录结构,不需要手动配置懵逼的任务路由,
755
+ 不需要配置每个函数怎么使用不同的队列名字,funboost自动搞定这些。
690
756
 
691
- 用户只需要使用简单的funboost语法就能操控celery框架了。funboost使用celery作为broker_kind,远远的暴击亲自使用无法ide下代码补全的celery框架的语法。
757
+ 用户只需要使用简单的funboost语法就能操控celery框架了。funboost使用celery作为broker_kind,
758
+ 远远的暴击亲自使用无法ide下代码补全的celery框架的语法。
692
759
  ```
693
760
 
694
761
  ```
@@ -1,9 +1,9 @@
1
- funboost/__init__.py,sha256=w8fr_Qucjc_R_SrKCTAz3uB4kfMM_gSboSPNpvMX-LI,4093
1
+ funboost/__init__.py,sha256=KGQZa6kICOEwjNZzjGGC4u_0YSiV0xWLbjafCsWHGX0,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=LreGf6HJ0TCj0HQKvfP4T5ZR9-KJUU7-SkoH1BM1HFM,9164
4
+ funboost/constant.py,sha256=Mie1szuOrJxMfkvAcRQLmo8Wstrk8OHWEn6owVLaJ-g,10047
5
5
  funboost/funboost_config_deafult.py,sha256=291HaHfcXqLxde6udJZwQoOAeGzKCkV-DkKs1aJSPu4,6704
6
- funboost/set_frame_config.py,sha256=kxYo_x2pMihwfTgFWrLxNbgI0IbFYC_HpSd9YLQM1ig,14439
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=zhyAIBIbnPcS8pdp0oqVh57Jx-hIDX0njTZiYZFCLFw,6486
9
9
  funboost/assist/dramatiq_helper.py,sha256=9mUyfBMAJXzwvB8LwOmapn3rY30a6UXt3tNOfL6OXoM,2106
@@ -15,8 +15,8 @@ funboost/assist/rq_windows_worker.py,sha256=jQlGmU0FWPVoKVP8cyuwTuAca9VfSd75F5Qw
15
15
  funboost/assist/taskiq_helper.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
16
16
  funboost/beggar_version_implementation/beggar_redis_consumer.py,sha256=x5cH6Vc3_UooY2oPeC9MlpMewrGd9qXCx6gEWi1fGa0,3941
17
17
  funboost/concurrent_pool/__init__.py,sha256=C27xYXj7c1NGuVeG7K2LxKH7JKnGwfPfITyon6xFaoE,803
18
- funboost/concurrent_pool/async_helper.py,sha256=bK4SyTu_WpgxCvai2AaiI7EKQ-COiDbqu0WPnbaJ1jM,3421
19
- funboost/concurrent_pool/async_pool_executor.py,sha256=LtkInrn8ZxZKEQGRjdQ7XKq6C6Taw0AgCkNuqcXZ0rU,7558
18
+ funboost/concurrent_pool/async_helper.py,sha256=Q2EVZeS_A29-S6i9VszC6HNNW-RkICF8v3t_9GJMwFw,3942
19
+ funboost/concurrent_pool/async_pool_executor.py,sha256=328ukGPtVg9fVQ1qc1XCCqnLaPVZFQNUExx91dwiqIk,6742
20
20
  funboost/concurrent_pool/base_pool_type.py,sha256=h3xcadufMAf49CoNe5VkUyIxlniMeNtDjadqB5IsiKA,194
21
21
  funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py,sha256=pWqpKAP0Z0cuHdSHJ5ti6EpNndnIoYkPE6IOl4BvbJw,4775
22
22
  funboost/concurrent_pool/bounded_processpoolexcutor_py36.py,sha256=CMRSjwnUAhNT2fj44SVNEYRehprlxjQADYkgw9hTVlw,3063
@@ -32,11 +32,11 @@ funboost/concurrent_pool/pool_commons.py,sha256=oJjVeJyUfN7ErYbm7tXXHn2rRzASxLuf
32
32
  funboost/concurrent_pool/single_thread_executor.py,sha256=rRrqDGmJxxtKBUxigUl1WATLXTGODpmtNoVOF8vRt_w,468
33
33
  funboost/concurrent_pool/backup/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
34
34
  funboost/concurrent_pool/backup/async_pool_executor0223.py,sha256=RVUZiylUvpTm6Um0PHAdDD2s7RVRXz8gHykYfktqLdI,9578
35
- funboost/concurrent_pool/backup/async_pool_executor_back.py,sha256=KL6zEQaa1KkZOlAO85mCC1gwLm-YC5Ghn21IUom0UKM,9598
35
+ funboost/concurrent_pool/backup/async_pool_executor_back.py,sha256=x0pyPgxzTENOs-fIkwkwrcG_GKG9F1QwCsafs1WYe6Y,9678
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=5Z1T0NBdouC96Qs4b7uyaKEAxpYP5WzLbZfBtAMVstU,86164
39
+ funboost/consumers/base_consumer.py,sha256=5jyNMB0f7WIaoreq1oCG4_ZujFylFvVvddzVkGVNZFg,86642
40
40
  funboost/consumers/celery_consumer.py,sha256=nQpSkzPBJ4bRpxn4i9ms0axrJiq9RWhb4lG2nAdCIig,9254
41
41
  funboost/consumers/confirm_mixin.py,sha256=5xC9AAQr_MY4tbSed8U-M6tOVmh69Qv9X0ld0JLT9Tk,6185
42
42
  funboost/consumers/dramatiq_consumer.py,sha256=ozmeAfeF0U-YNYHK4suQB0N264h5AZdfMH0O45Mh-8A,2229
@@ -72,7 +72,7 @@ funboost/consumers/redis_consumer_simple.py,sha256=trPrMHSVU1Y_fY-xz5tFFmt1zjV-9
72
72
  funboost/consumers/redis_filter.py,sha256=GYx4dTgTv05oyP-2fKLpOeRdzot-J9ZO7H_8fsbhHfQ,8810
73
73
  funboost/consumers/redis_pubsub_consumer.py,sha256=8V8EqobKpEXzpsQx_H3A-JBKLsWOsE0n16g62tUMMYY,1122
74
74
  funboost/consumers/redis_stream_consumer.py,sha256=gkdP-BxU8U6cE5bVBVQCfgAMeQmsz6gQyQgqi6r2kf8,6553
75
- funboost/consumers/rocketmq_consumer.py,sha256=23KLRz8iO9e_x7asrceRJYhwJFMruUgmKw7m3pHVkw0,1692
75
+ funboost/consumers/rocketmq_consumer.py,sha256=QCAdw2UBGPlakTcXdiykvPx4cl9yDMSib44BbmzBHfY,1717
76
76
  funboost/consumers/rq_consumer.py,sha256=JX84k6Jiv4pBiQMmnhdJ7s7Qz4ub5TWS4T7qTF-WdlM,876
77
77
  funboost/consumers/sqlachemy_consumer.py,sha256=PawUaNV7EZWBQVWXkGaXy1Z16hUgxU4BLDeUFR83ewM,1300
78
78
  funboost/consumers/tcp_consumer.py,sha256=9uXzbkgEU-r4kH07v4ASxUSTe-JEo-EgJ1228pju4W4,2035
@@ -86,7 +86,7 @@ funboost/contrib/queue2queue.py,sha256=4-28ULM7PTbmbOw8DG9rjlMUQCDkJNcUqkmdHAkGg
86
86
  funboost/contrib/redis_consume_latest_msg_broker.py,sha256=ESortBZ2qu_4PBCa3e3FeL2k_PClZNb74_v55HV-BOg,1902
87
87
  funboost/contrib/save_result_status_to_sqldb.py,sha256=AxvD7nHs4sjr9U0kwEZzyPKrsGdU_JzEgzzhh_V1_4w,4071
88
88
  funboost/core/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
89
- funboost/core/active_cousumer_info_getter.py,sha256=qxaCeK9Jxe_P4FyVNQI3omtb8lrNnvy_hNc11NmCUCo,12155
89
+ funboost/core/active_cousumer_info_getter.py,sha256=vd7yja7o0d77DhRj_h052Gh4V_72W6BpTBFFlD22KMA,15252
90
90
  funboost/core/booster.py,sha256=PZ_ab4b663FxkO9KqBPy6kaks03j0jantxCq5JMJWCo,20377
91
91
  funboost/core/current_task.py,sha256=6f7IbGZaSnojVxIeyXPkk5LE2yUiRRTJBjTNqwLL2WU,7270
92
92
  funboost/core/exceptions.py,sha256=pLF7BkRJAfDiWp2_xGZqencmwdPiSQI1NENbImExknY,1311
@@ -112,11 +112,13 @@ funboost/factories/__init__.py,sha256=s7kKKjR1HU5eMjPD6r5b-SXTVMo1zBp2JjOAtkyt5Y
112
112
  funboost/factories/broker_kind__publsiher_consumer_type_map.py,sha256=-kKhV65KnRf86b353PJuaEMXMolfV4B2CtTF1wD1kFQ,10189
113
113
  funboost/factories/consumer_factory.py,sha256=EaAw3OZJkGepkQxKkDvMshHjIVOQva_N6nUEhLO4JwU,1500
114
114
  funboost/factories/publisher_factotry.py,sha256=4651sxnbIAi6sFEUQdlUuv8UkbMQIE_Pbzm-1DimAs8,2535
115
- funboost/function_result_web/app.py,sha256=pFtWgnndjOucnJlf4HDhPKyBcF3wD2WbTbrtVs1JZ5Y,12673
116
- funboost/function_result_web/app_debug_start.py,sha256=OP79Wp3QWRjaKNAKXeW4WZ4-UCGgeYyT5ppykblMK8E,152
115
+ funboost/function_result_web/app.py,sha256=umXTsGbL-uMFJJoMuALZoUc5d3XZ1SynUV-Lz_w0fZY,14117
116
+ funboost/function_result_web/app_debug_start.py,sha256=8O9-ZMRMIokJAH55AOrpDLr02iNYt4JhW_0FcIgRXUI,338
117
117
  funboost/function_result_web/functions.py,sha256=iPaYcg7reUFXe2HclG6jzavQPcjwLOt3rUdZ7-FghXE,11286
118
- funboost/function_result_web/__pycache__/app.cpython-37.pyc,sha256=6457vOwd4y-_-zAfT_3hRhxuTbareCucMlczqDdkYwk,10388
118
+ funboost/function_result_web/__pycache__/app.cpython-313.pyc,sha256=yxIpPlpjK_OiVUkV0VzTJPLs1gkD1XlPSr5Gu9Ebzso,18370
119
+ funboost/function_result_web/__pycache__/app.cpython-37.pyc,sha256=ciDHMnkwNj2g_-IrfSVwqHSu7q9RoK9dRsh23cqd-0I,11922
119
120
  funboost/function_result_web/__pycache__/app.cpython-39.pyc,sha256=qdvJ3NlUvov7tAmCl0WfNTOUh0NVpeAST4b8OLHpLXw,9828
121
+ funboost/function_result_web/__pycache__/functions.cpython-313.pyc,sha256=gfo7k-wu81PlRPcYFdzC_Xu3MZuKizi8jevZYfkoa4I,11827
120
122
  funboost/function_result_web/__pycache__/functions.cpython-37.pyc,sha256=NDy7JvbD5Q_VCWkXSV2jTpgdbOWNKDpHQbqm3c7523Q,5940
121
123
  funboost/function_result_web/__pycache__/functions.cpython-39.pyc,sha256=HY1LCsLzLfDgzgYc5_IgpQ8LFhWP9PnKh5V05XM_rJ4,6026
122
124
  funboost/function_result_web/static/assets/css/custom.css,sha256=3brvjy2aBOTIXcTUK4NV6dX5wFRqx6K2aLu_jQn63jM,7674
@@ -163,7 +165,7 @@ funboost/function_result_web/templates/fun_result_table.html,sha256=KBi9XBBgF3lp
163
165
  funboost/function_result_web/templates/index.html,sha256=2eHJau1boHAu1N3VMOax5bzUP6UCBGN0SyFrKlDRryM,9887
164
166
  funboost/function_result_web/templates/index_backup.html,sha256=qwUWHyQFrbSVSnZUjU5E9Zxy6a9mEJF_BdH0HeUxXOU,20045
165
167
  funboost/function_result_web/templates/login.html,sha256=q37dj7O0LeyiV38Zd5P1Qn_qmhjdFomuYTRY1Yk48Bo,2007
166
- funboost/function_result_web/templates/queue_op.html,sha256=8de8jX47zIJ-g-zi6AgcsvfXY3IFpjuoQCzmzsjfK-k,46925
168
+ funboost/function_result_web/templates/queue_op.html,sha256=bQX5yxRtF6bNk4MIlx3kPUt9fuog7MHgUhghN1k8lso,44673
167
169
  funboost/function_result_web/templates/rpc_call.html,sha256=qFznWysEFTvJKUQYqnJaapB833XTjfa8UlEKNk2nFxI,15611
168
170
  funboost/function_result_web/templates/running_consumer_by_ip.html,sha256=2Rcxbi80c1JEIRCnNe1MG55axdb0vBlkB6yL9rxw53c,10248
169
171
  funboost/function_result_web/templates/running_consumer_by_queue_name.html,sha256=r5EYlfp0fE8RFWzI0k3K571EUmirwcPX9NdnSEfAWiQ,10301
@@ -174,7 +176,7 @@ funboost/publishers/celery_publisher000.py,sha256=2XLOyU2__vlIUTi5L15uf0BJqAIjxb
174
176
  funboost/publishers/confluent_kafka_publisher.py,sha256=B4rF6gljixOMyN6L2eL1gzqTv97uoy7TTzgKUhHljEQ,4749
175
177
  funboost/publishers/dramatiq_publisher.py,sha256=IH9F-Ps1r94WDu2a7cZbJqWlBgblDbEcpjGj2rl-9WE,1413
176
178
  funboost/publishers/empty_publisher.py,sha256=Com5m-mkjXpcWxKZZneymhLNaRJNaGAtvwjhwHmECgg,870
177
- funboost/publishers/faststream_publisher.py,sha256=ndGDHz53s_u5NsSi2vK7_Zll2m3lfqzQ8iaNPGHo6oE,2223
179
+ funboost/publishers/faststream_publisher.py,sha256=TS_hFDZ4Q1HGyGJ_3D9m9SroUOmMo-f2hCMTyuEoEIU,2303
178
180
  funboost/publishers/http_publisher.py,sha256=pS3z_AVqH6h4PAgqB7usihvzLJP5ZzfPKQRMQfHrJHQ,753
179
181
  funboost/publishers/httpsqs_publisher.py,sha256=PS6h8-mn3wYFfMOsPt4tal8p0yZgYgrYYO9ZnIl9CwU,2737
180
182
  funboost/publishers/huey_publisher.py,sha256=9HBrsqTO61iPB1nI5fYOQNPuOaX4I4Wmb1BRNODAE_0,1118
@@ -195,7 +197,7 @@ funboost/publishers/rabbitmq_pika_publisher.py,sha256=QygZv96tYmfJcs8Dukv3J_x134
195
197
  funboost/publishers/rabbitmq_rabbitpy_publisher.py,sha256=GGXPKxE6-mAjqMIKqwvR9d7L-zuJQcQoU9uRsQLNGas,1953
196
198
  funboost/publishers/redis_publisher.py,sha256=EDnQSt73FE2PGq0WHyvsMuaoD_6wp_tuZveWrMF7iLY,3439
197
199
  funboost/publishers/redis_publisher_lpush.py,sha256=xEWuCTtbDcKFLTxGrECrbIVapFfUwqX2-GHenMClu-Q,278
198
- funboost/publishers/redis_publisher_priority.py,sha256=_xbrRaaA3upouUuvmw1pJl4WsIm2zSNsEE6PdxqKuj4,2209
200
+ funboost/publishers/redis_publisher_priority.py,sha256=JYIH_gWpBtLrck1apVbgaR5y8SkfgUAj1Jvwmt_FwxM,2209
199
201
  funboost/publishers/redis_publisher_simple.py,sha256=CxUqi2_ykOhKhQFByNJ8nUaFjjchA-YzSE72ng1_OiM,760
200
202
  funboost/publishers/redis_pubsub_publisher.py,sha256=GA3TzN91OT2d-Ei76rp_Sd3Au8IcihFupo36izB8dis,737
201
203
  funboost/publishers/redis_queue_flush_mixin.py,sha256=d-AgJiCuX25mOwP2gMorGbXCaLuFpqWO4jAJXJDBfk0,732
@@ -213,9 +215,9 @@ funboost/queues/peewee_queue.py,sha256=FrwegrilkHZG6Y1cGdl5Bt_UtA25f7m5TJQJMZ9Yn
213
215
  funboost/queues/sqla_queue.py,sha256=b-2QPvvuMxklm41ibZhGKehaAV9trXBQFCOHzgThx_s,11080
214
216
  funboost/timing_job/__init__.py,sha256=_rIiU7pMXe-IwUCeok50hSiWXoUoMBar22u6-pZLlAI,265
215
217
  funboost/timing_job/apscheduler_use_mysql_store.py,sha256=ss92DiSLzbWuVIo19sTLgC99GessltWLOlqqOd4AIL4,471
216
- funboost/timing_job/apscheduler_use_redis_store.py,sha256=cGqwULlYhoApzheDliTVn1CN3Ks_cSGDjObEhbSV9IU,2990
217
- funboost/timing_job/timing_job_base.py,sha256=Pd_U2Ot-ds91x-2kzznXS8zx_oVAE16x7V0KJUAtljw,9583
218
- funboost/timing_job/timing_push.py,sha256=QzIg8_apyYZBpkGX2G_mmAHRcY-VbyhftK-Bdr5CKm4,7382
218
+ funboost/timing_job/apscheduler_use_redis_store.py,sha256=JW60TYFBSf5Zr7RlTcAAGdXwG70sj54GKoUI5ig0Z2U,3389
219
+ funboost/timing_job/timing_job_base.py,sha256=VqPUYOJw0IYDZcNyJdHQdsidw-D2aCZl2rR0QQrV-n8,10149
220
+ funboost/timing_job/timing_push.py,sha256=uXNbDk8XfwWVJHig47qKU0Wka5p8_bniijq4_WfgxS4,7856
219
221
  funboost/utils/__init__.py,sha256=rAyXE7lgCo_3VdMvGrIJiqsTHv2nZPTJDTj1f6s_KgE,586
220
222
  funboost/utils/apscheduler_monkey.py,sha256=CcUISbqX6nMWSxr_QjZ26IvvhUk_ojYZWRaKenpsKfE,3124
221
223
  funboost/utils/block_exit.py,sha256=BnfxNYo3lnmhk686RAEoc4u3D4RU_iEMMMgu5L8gIuI,96
@@ -251,7 +253,7 @@ funboost/utils/dependency_packages/mongomq/test.py,sha256=Tcmme3U3KXFSkdknO71bge
251
253
  funboost/utils/dependency_packages/mongomq/utils.py,sha256=ljhcLhNf3yOc7IgnuRdFqLtwTGynRNd2uXZNRvStAL0,377
252
254
  funboost/utils/dependency_packages_in_pythonpath/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
253
255
  funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py,sha256=eOaK0Cr1yAmLcHhOM5-nV9XxXhQFZQkiaBECY65sFuc,341
254
- funboost/utils/dependency_packages_in_pythonpath/readme.md,sha256=uONAElG6s0hHEOB3U6ubvkrCXoaTgpPFjcxmVTL-1y8,982
256
+ funboost/utils/dependency_packages_in_pythonpath/readme.md,sha256=rlYsPSNqIdhp8L8WOJiONQLrPnPhrdFLdnZr2lAg1n0,920
255
257
  funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc,sha256=XpiufbSphxt8UXSMqXz9vOGejT4noRAKE3dnfsEGvAg,187
256
258
  funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-313.pyc,sha256=n9egw99NJyOXwjRjq5tgNKC0GlCjFb54efJ1XeBnZC0,175
257
259
  funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc,sha256=Oy1-_q-VLcFLQ7RRp8B-fbBkNOb2SepePLYW4L5DQ6U,165
@@ -268,7 +270,7 @@ funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py,sha256=S
268
270
  funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py,sha256=CnB9LpvykAEXEdQyBEcgUU7iHxwNF3xuGzX7UYuUbiQ,11651
269
271
  funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py,sha256=qTxLRo5EqoHZIGqMguzLm90mtThBRYje_FaZz-fDbhg,427
270
272
  funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
271
- funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md,sha256=ALgrpiwrKqq8SMrWN2cwtEZ9rO67ju_UWsN3hqsVvbs,679
273
+ funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md,sha256=BUZVchvn4henUdpA48IuF6SSSsnzdsMSff8l0MU4R2A,617
272
274
  funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py,sha256=ldPwRIOWVskKsItBwFqbqPfraMlFsGs42_ZDXtxza5U,12536
273
275
  funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py,sha256=90Dgj62Q9ABGVAwAPwufo3OKM2s0ws6LeQMZg8ifJb0,1284
274
276
  funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc,sha256=PGpc0JrGU6UjKZ7WgxlpsCL2OuhJhWpE9WrxMHREtPc,1696
@@ -327,9 +329,9 @@ funboost/utils/pysnooper_ydf/utils.py,sha256=evSmGi_Oul7vSP47AJ0DLjFwoCYCfunJZ1m
327
329
  funboost/utils/pysnooper_ydf/variables.py,sha256=QejRDESBA06KG9OH4sBT4J1M55eaU29EIHg8K_igaXo,3693
328
330
  funboost/utils/times/__init__.py,sha256=Y4bQD3SIA_E7W2YvHq2Qdi0dGM4H2DxyFNdDOuFOq1w,2417
329
331
  funboost/utils/times/version.py,sha256=11XfnZVVzOgIhXXdeN_mYfdXThfrsbQHpA0wCjz-hpg,17
330
- funboost-49.1.dist-info/LICENSE,sha256=9EPP2ktG_lAPB8PjmWV-c9BiaJHc_FP6pPLcUrUwx0E,11562
331
- funboost-49.1.dist-info/METADATA,sha256=PGql-fv48PjcLBvgtQRrIqM90RBirSAv_0E-4tWJ2rQ,39804
332
- funboost-49.1.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
333
- funboost-49.1.dist-info/entry_points.txt,sha256=yMSSAGRzRAAhGyNNQHw24MooKlDZsaJ499_D6fPl58A,96
334
- funboost-49.1.dist-info/top_level.txt,sha256=K8WuKnS6MRcEWxP1NvbmCeujJq6TEfbsB150YROlRw0,9
335
- funboost-49.1.dist-info/RECORD,,
332
+ funboost-49.3.dist-info/LICENSE,sha256=9EPP2ktG_lAPB8PjmWV-c9BiaJHc_FP6pPLcUrUwx0E,11562
333
+ funboost-49.3.dist-info/METADATA,sha256=l7XQ_hREppMcSatkLuBb902bihAqTBEs1XFee37rZC0,43106
334
+ funboost-49.3.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
335
+ funboost-49.3.dist-info/entry_points.txt,sha256=yMSSAGRzRAAhGyNNQHw24MooKlDZsaJ499_D6fPl58A,96
336
+ funboost-49.3.dist-info/top_level.txt,sha256=K8WuKnS6MRcEWxP1NvbmCeujJq6TEfbsB150YROlRw0,9
337
+ funboost-49.3.dist-info/RECORD,,