funboost 48.5__py3-none-any.whl → 48.7__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.

funboost/__init__.py CHANGED
@@ -13,7 +13,7 @@ set_frame_config这个模块的 use_config_form_funboost_config_module() 是核
13
13
  这段注释说明和使用的用户无关,只和框架开发人员有关.
14
14
  '''
15
15
 
16
- __version__ = "48.5"
16
+ __version__ = "48.7"
17
17
 
18
18
  from funboost.set_frame_config import show_frame_config
19
19
 
@@ -26,7 +26,7 @@ from funboost.core.func_params_model import (BoosterParams, BoosterParamsComplet
26
26
  PriorityConsumingControlConfig, PublisherParams, BoosterParamsComplete)
27
27
  from funboost.funboost_config_deafult import FunboostCommonConfig, BrokerConnConfig
28
28
 
29
- from funboost.core.fabric_deploy_helper import fabric_deploy, kill_all_remote_tasks
29
+ # from funboost.core.fabric_deploy_helper import fabric_deploy, kill_all_remote_tasks # fabric2还没适配python3.12以上版本,不在这里导入,否则高版本python报错。
30
30
  from funboost.utils.paramiko_util import ParamikoFolderUploader
31
31
 
32
32
  from funboost.consumers.base_consumer import (wait_for_possible_has_finish_all_tasks_by_conusmer_list,
@@ -60,7 +60,7 @@ from funboost.concurrent_pool.custom_threadpool_executor import show_current_thr
60
60
 
61
61
  from funboost.core.current_task import funboost_current_task,fct,get_current_taskid
62
62
 
63
- from funboost.function_result_web.app import start_funboost_web_manager
63
+
64
64
 
65
65
  # atexit.register(ctrl_c_recv) # 还是需要用户自己在代码末尾加才可以.
66
66
  # set_interrupt_signal_handler()
@@ -61,6 +61,7 @@ class AsyncPoolExecutorLtPy310(FunboostFileLoggerMixin,FunboostBaseConcurrentPoo
61
61
  """
62
62
  self._size = size
63
63
  self.loop = loop or asyncio.new_event_loop()
64
+ asyncio.set_event_loop(self.loop)
64
65
  self._sem = asyncio.Semaphore(self._size, loop=self.loop)
65
66
  self._queue = asyncio.Queue(maxsize=size, loop=self.loop)
66
67
  self._lock = threading.Lock()
@@ -59,6 +59,7 @@ def run_sync_or_async_fun000(func, *args, **kwargs):
59
59
  fun_is_asyncio = inspect.iscoroutinefunction(func)
60
60
  if fun_is_asyncio:
61
61
  loop = asyncio.new_event_loop()
62
+ asyncio.set_event_loop(loop)
62
63
  try:
63
64
  return loop.run_until_complete(func(*args, **kwargs))
64
65
  finally:
@@ -47,7 +47,7 @@ class FunboostBackgroundSchedulerProcessJobsWithinRedisLock(FunboostBackgroundSc
47
47
  jobstores = {
48
48
  "default": RedisJobStore(db=BrokerConnConfig.REDIS_DB, host=BrokerConnConfig.REDIS_HOST,
49
49
  port=BrokerConnConfig.REDIS_PORT, password=BrokerConnConfig.REDIS_PASSWORD,
50
- username=BrokerConnConfig.REDIS_USERNAME, jobs_key='funboost.apscheduler.jobs')
50
+ username=BrokerConnConfig.REDIS_USERNAME, jobs_key='funboost.apscheduler.jobs',run_times_key="funboost.apscheduler.run_times")
51
51
  }
52
52
 
53
53
  funboost_background_scheduler_redis_store = FunboostBackgroundSchedulerProcessJobsWithinRedisLock(timezone=FunboostCommonConfig.TIMEZONE, daemon=False, jobstores=jobstores)
@@ -117,6 +117,8 @@ class FunboostBackgroundScheduler(BackgroundScheduler):
117
117
  args_list = list(args)
118
118
  args_list.insert(0, func.queue_name)
119
119
  args = tuple(args_list)
120
+ if name is None:
121
+ name = f'push_fun_params_to_broker_for_queue_{func.queue_name}'
120
122
  return self.add_job(push_fun_params_to_broker, trigger, args, kwargs, id, name,
121
123
  misfire_grace_time, coalesce, max_instances,
122
124
  next_run_time, jobstore, executor,
@@ -25,7 +25,7 @@ class ApsJobAdder:
25
25
 
26
26
  queue__redis_aps_map = {}
27
27
 
28
- def __init__(self, booster: Booster, job_store_kind: str = 'memory'):
28
+ def __init__(self, booster: Booster, job_store_kind: str = 'memory',is_auto_start=True,is_auto_paused=False):
29
29
  """
30
30
  Initialize the ApsJobAdder.
31
31
 
@@ -35,6 +35,12 @@ class ApsJobAdder:
35
35
  """
36
36
  self.booster = booster
37
37
  self.job_store_kind = job_store_kind
38
+ if getattr(self.aps_obj, 'has_started_flag', False) is False:
39
+ if is_auto_start:
40
+ self.aps_obj.has_started_flag = True
41
+ self.aps_obj.start(paused=is_auto_paused)
42
+
43
+
38
44
 
39
45
  @classmethod
40
46
  def get_funboost_redis_apscheduler(cls, queue_name):
@@ -75,9 +81,9 @@ class ApsJobAdder:
75
81
  funboost的ApsJobAdder对象.add_push_job入参去掉了函数,因为类的实例化时候会把函数传进来,不需要再麻烦用户一次了。
76
82
  """
77
83
 
78
- if not getattr(self.aps_obj, 'has_started_flag', False):
79
- self.aps_obj.has_started_flag = True
80
- self.aps_obj.start(paused=False)
84
+ # if not getattr(self.aps_obj, 'has_started_flag', False):
85
+ # self.aps_obj.has_started_flag = True
86
+ # self.aps_obj.start(paused=False)
81
87
  return self.aps_obj.add_push_job(self.booster, trigger, args, kwargs, id, name,
82
88
  misfire_grace_time, coalesce, max_instances,
83
89
  next_run_time, jobstore, executor,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: funboost
3
- Version: 48.5
3
+ Version: 48.7
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
@@ -36,7 +36,7 @@ Requires-Dist: rabbitpy==2.0.1
36
36
  Requires-Dist: decorator==5.1.1
37
37
  Requires-Dist: tomorrow3==1.1.0
38
38
  Requires-Dist: persist-queue>=0.4.2
39
- Requires-Dist: apscheduler>=3.10.1
39
+ Requires-Dist: apscheduler<4.0.0,>=3.10.1
40
40
  Requires-Dist: pikav0
41
41
  Requires-Dist: pikav1
42
42
  Requires-Dist: redis2
@@ -156,7 +156,7 @@ python万能分布式函数调度框架,支持5种并发模式,30+种消息
156
156
  但是funboost完全不会这样,加上或去掉@boost装饰器,对你的项目影响为0,用户照常使用,
157
157
  所以用户可以对任意项目,任意时候,引入使用funboost或者去掉使用funboost,代码组织形式不需要发生变化.
158
158
 
159
- 通过funboost web 管理系统,支持全面 查看 监控 管理 funboost的任务消费。
159
+ 通过funboost web manager 管理系统,支持全面 查看 监控 管理 funboost的任务消费。
160
160
  </pre>
161
161
 
162
162
  ### 框架评价
@@ -530,7 +530,7 @@ if __name__ == "__main__":
530
530
  <a href="https://imgse.com/i/pkFkCUe"><img src="https://s21.ax1x.com/2024/04/29/pkFkCUe.png" alt="pkFkCUe.png" border="0" /></a>
531
531
 
532
532
 
533
- funboost web 截图:
533
+ funboost web manager 截图:
534
534
 
535
535
  函数消费结果:可查看和搜索函数实时消费状态和结果
536
536
  [![pEJCffK.png](https://s21.ax1x.com/2025/03/04/pEJCffK.png)](https://imgse.com/i/pEJCffK)
@@ -1,4 +1,4 @@
1
- funboost/__init__.py,sha256=8ZTpXJ7VFmj4G947sngE4b3RqiqxJyOdYwo0TTE79YQ,4064
1
+ funboost/__init__.py,sha256=V5iFIlzZi-svRuEWbYLPqUEye-6w75NR8N8Fq4LECys,4093
2
2
  funboost/__init__old.py,sha256=9Kv3cPLnPkbzMRnuJFVkPsuDdx1CdcSIuITkpdncZSc,20382
3
3
  funboost/__main__.py,sha256=-6Nogi666Y0LN8fVm3JmHGTOk8xEGWvotW_GDbSaZME,1065
4
4
  funboost/constant.py,sha256=bsXk4UhaOvWlaIr160upSh1jPd7ckG1r9Wu-nMYg6yU,8352
@@ -16,7 +16,7 @@ funboost/assist/taskiq_helper.py,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPja
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
18
  funboost/concurrent_pool/async_helper.py,sha256=bK4SyTu_WpgxCvai2AaiI7EKQ-COiDbqu0WPnbaJ1jM,3421
19
- funboost/concurrent_pool/async_pool_executor.py,sha256=n2T4WgUitloFgHfRXTaD5Ro29WkR8qEw1ftEIub03Ug,7515
19
+ funboost/concurrent_pool/async_pool_executor.py,sha256=LtkInrn8ZxZKEQGRjdQ7XKq6C6Taw0AgCkNuqcXZ0rU,7558
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
@@ -27,7 +27,7 @@ funboost/concurrent_pool/custom_gevent_pool_executor.py,sha256=FLcEwEJgFtaEPzH-W
27
27
  funboost/concurrent_pool/custom_threadpool_executor.py,sha256=hYgRYqFoCvplyQFTzw57P-oRcmO6ZuxW5qB3U1SPZks,12084
28
28
  funboost/concurrent_pool/custom_threadpool_executor000.py,sha256=jJLXy3h-bELap6nZA6yLtdozzTWcvCtZ7IY6MTqLEAM,9317
29
29
  funboost/concurrent_pool/fixed_thread_pool.py,sha256=QHJufg4jug6nkla2g5lc_5FVd_egKiNquFACRYeg6uE,1626
30
- funboost/concurrent_pool/flexible_thread_pool.py,sha256=Agv2W8CgeG5SXlAzWMwMtai8gP7Lm1Sb4wiM4gk9vao,6040
30
+ funboost/concurrent_pool/flexible_thread_pool.py,sha256=iHn3z7KDWX5S70RNfJiozjC2EJ5iq0OUDktnUdHlLCY,6078
31
31
  funboost/concurrent_pool/pool_commons.py,sha256=oJjVeJyUfN7ErYbm7tXXHn2rRzASxLufmSUb9c14IGQ,866
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
@@ -210,9 +210,9 @@ funboost/queues/peewee_queue.py,sha256=FrwegrilkHZG6Y1cGdl5Bt_UtA25f7m5TJQJMZ9Yn
210
210
  funboost/queues/sqla_queue.py,sha256=b-2QPvvuMxklm41ibZhGKehaAV9trXBQFCOHzgThx_s,11080
211
211
  funboost/timing_job/__init__.py,sha256=_rIiU7pMXe-IwUCeok50hSiWXoUoMBar22u6-pZLlAI,265
212
212
  funboost/timing_job/apscheduler_use_mysql_store.py,sha256=ss92DiSLzbWuVIo19sTLgC99GessltWLOlqqOd4AIL4,471
213
- funboost/timing_job/apscheduler_use_redis_store.py,sha256=Iwr9x1SnGU4wU5PmMWRAoV72AoSTSuB8aLJKBGCjJs4,2943
214
- funboost/timing_job/timing_job_base.py,sha256=Ho-fg1mh3uVctQaolOZ_SDMd-1gnb3UTIMuBy0iztJ8,9479
215
- funboost/timing_job/timing_push.py,sha256=l-41_W-nBDJtE6ewuI-iBKNQ1LiLAKmuAhSFJh1SD_k,5665
213
+ funboost/timing_job/apscheduler_use_redis_store.py,sha256=cGqwULlYhoApzheDliTVn1CN3Ks_cSGDjObEhbSV9IU,2990
214
+ funboost/timing_job/timing_job_base.py,sha256=IlTZBmq53wftsQfLl2M-jLJb7adGXQr5e1jCyGlKF0M,9582
215
+ funboost/timing_job/timing_push.py,sha256=0inlo-XtHcEWQJVzGQHkTB-40rdIoduREdP9Ux8Yuh8,5930
216
216
  funboost/utils/__init__.py,sha256=rAyXE7lgCo_3VdMvGrIJiqsTHv2nZPTJDTj1f6s_KgE,586
217
217
  funboost/utils/apscheduler_monkey.py,sha256=CcUISbqX6nMWSxr_QjZ26IvvhUk_ojYZWRaKenpsKfE,3124
218
218
  funboost/utils/block_exit.py,sha256=BnfxNYo3lnmhk686RAEoc4u3D4RU_iEMMMgu5L8gIuI,96
@@ -250,9 +250,11 @@ funboost/utils/dependency_packages_in_pythonpath/__init__.py,sha256=47DEQpj8HBSa
250
250
  funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py,sha256=eOaK0Cr1yAmLcHhOM5-nV9XxXhQFZQkiaBECY65sFuc,341
251
251
  funboost/utils/dependency_packages_in_pythonpath/readme.md,sha256=rlYsPSNqIdhp8L8WOJiONQLrPnPhrdFLdnZr2lAg1n0,920
252
252
  funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc,sha256=XpiufbSphxt8UXSMqXz9vOGejT4noRAKE3dnfsEGvAg,187
253
+ funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-313.pyc,sha256=n9egw99NJyOXwjRjq5tgNKC0GlCjFb54efJ1XeBnZC0,175
253
254
  funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc,sha256=Oy1-_q-VLcFLQ7RRp8B-fbBkNOb2SepePLYW4L5DQ6U,165
254
255
  funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc,sha256=a54jxiFA239ImQBOQalJk2t8AULxlc3yxz-QaxcWAUo,169
255
256
  funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc,sha256=14XA46hrNLjlGaJvPw3N3cDDKC8WPH1aVk8L25F4m8o,475
257
+ funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-313.pyc,sha256=plXswY1PgonElMMjT2FhgY2zVqMjH7bBxoMNdLZwpWg,436
256
258
  funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc,sha256=Y9-hpQ_g0oRz3GWiUhB4GUW8rpxoQlQ4rQV17pPscLo,312
257
259
  funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc,sha256=KoT6tPC8DlM-7KwaYL3tNlnnd9PCjzYJK61JYuRTcKc,316
258
260
  funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py,sha256=DPdTb309wR_E5zR3RVoUYuR1jotheJL3PXdqNBHi2yg,1223
@@ -322,9 +324,9 @@ funboost/utils/pysnooper_ydf/utils.py,sha256=evSmGi_Oul7vSP47AJ0DLjFwoCYCfunJZ1m
322
324
  funboost/utils/pysnooper_ydf/variables.py,sha256=QejRDESBA06KG9OH4sBT4J1M55eaU29EIHg8K_igaXo,3693
323
325
  funboost/utils/times/__init__.py,sha256=Y4bQD3SIA_E7W2YvHq2Qdi0dGM4H2DxyFNdDOuFOq1w,2417
324
326
  funboost/utils/times/version.py,sha256=11XfnZVVzOgIhXXdeN_mYfdXThfrsbQHpA0wCjz-hpg,17
325
- funboost-48.5.dist-info/LICENSE,sha256=9EPP2ktG_lAPB8PjmWV-c9BiaJHc_FP6pPLcUrUwx0E,11562
326
- funboost-48.5.dist-info/METADATA,sha256=2UyxT3bgNcIfI2PdWCVLPqJ5jy8UJ598TTgsgJzcgQ4,34072
327
- funboost-48.5.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
328
- funboost-48.5.dist-info/entry_points.txt,sha256=yMSSAGRzRAAhGyNNQHw24MooKlDZsaJ499_D6fPl58A,96
329
- funboost-48.5.dist-info/top_level.txt,sha256=K8WuKnS6MRcEWxP1NvbmCeujJq6TEfbsB150YROlRw0,9
330
- funboost-48.5.dist-info/RECORD,,
327
+ funboost-48.7.dist-info/LICENSE,sha256=9EPP2ktG_lAPB8PjmWV-c9BiaJHc_FP6pPLcUrUwx0E,11562
328
+ funboost-48.7.dist-info/METADATA,sha256=DCsulwp0lhJQiY3jq8ke9LMQpChKc_3Ewss2naLEksg,34095
329
+ funboost-48.7.dist-info/WHEEL,sha256=PZUExdf71Ui_so67QXpySuHtCi3-J3wvF4ORK6k_S8U,91
330
+ funboost-48.7.dist-info/entry_points.txt,sha256=yMSSAGRzRAAhGyNNQHw24MooKlDZsaJ499_D6fPl58A,96
331
+ funboost-48.7.dist-info/top_level.txt,sha256=K8WuKnS6MRcEWxP1NvbmCeujJq6TEfbsB150YROlRw0,9
332
+ funboost-48.7.dist-info/RECORD,,