funboost 48.1__tar.gz → 48.2__tar.gz

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 (315) hide show
  1. {funboost-48.1/funboost.egg-info → funboost-48.2}/PKG-INFO +1 -1
  2. {funboost-48.1 → funboost-48.2}/funboost/__init__.py +1 -1
  3. {funboost-48.1 → funboost-48.2}/funboost/consumers/base_consumer.py +20 -12
  4. {funboost-48.1 → funboost-48.2}/funboost/core/active_cousumer_info_getter.py +29 -9
  5. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/__pycache__/functions.cpython-37.pyc +0 -0
  6. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/css/content_page_style.css +1 -1
  7. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/templates/queue_op.html +23 -12
  8. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/templates/running_consumer_by_ip.html +4 -5
  9. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/templates/running_consumer_by_queue_name.html +5 -1
  10. {funboost-48.1 → funboost-48.2/funboost.egg-info}/PKG-INFO +1 -1
  11. {funboost-48.1 → funboost-48.2}/LICENSE +0 -0
  12. {funboost-48.1 → funboost-48.2}/MANIFEST.in +0 -0
  13. {funboost-48.1 → funboost-48.2}/README.md +0 -0
  14. {funboost-48.1 → funboost-48.2}/funboost/__init__old.py +0 -0
  15. {funboost-48.1 → funboost-48.2}/funboost/__main__.py +0 -0
  16. {funboost-48.1 → funboost-48.2}/funboost/assist/__init__.py +0 -0
  17. {funboost-48.1 → funboost-48.2}/funboost/assist/celery_helper.py +0 -0
  18. {funboost-48.1 → funboost-48.2}/funboost/assist/dramatiq_helper.py +0 -0
  19. {funboost-48.1 → funboost-48.2}/funboost/assist/faststream_helper.py +0 -0
  20. {funboost-48.1 → funboost-48.2}/funboost/assist/huey_helper.py +0 -0
  21. {funboost-48.1 → funboost-48.2}/funboost/assist/rocketry_helper.py +0 -0
  22. {funboost-48.1 → funboost-48.2}/funboost/assist/rq_helper.py +0 -0
  23. {funboost-48.1 → funboost-48.2}/funboost/assist/rq_windows_worker.py +0 -0
  24. {funboost-48.1 → funboost-48.2}/funboost/assist/taskiq_helper.py +0 -0
  25. {funboost-48.1 → funboost-48.2}/funboost/beggar_version_implementation/beggar_redis_consumer.py +0 -0
  26. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/__init__.py +0 -0
  27. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/async_helper.py +0 -0
  28. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/async_pool_executor.py +0 -0
  29. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/backup/__init__.py +0 -0
  30. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/backup/async_pool_executor0223.py +0 -0
  31. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/backup/async_pool_executor_back.py +0 -0
  32. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/backup/async_pool_executor_janus.py +0 -0
  33. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/base_pool_type.py +0 -0
  34. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py +0 -0
  35. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/bounded_processpoolexcutor_py36.py +0 -0
  36. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/bounded_threadpoolexcutor.py +0 -0
  37. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py +0 -0
  38. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/custom_evenlet_pool_executor.py +0 -0
  39. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/custom_gevent_pool_executor.py +0 -0
  40. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/custom_threadpool_executor.py +0 -0
  41. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/custom_threadpool_executor000.py +0 -0
  42. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/fixed_thread_pool.py +0 -0
  43. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/flexible_thread_pool.py +0 -0
  44. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/pool_commons.py +0 -0
  45. {funboost-48.1 → funboost-48.2}/funboost/concurrent_pool/single_thread_executor.py +0 -0
  46. {funboost-48.1 → funboost-48.2}/funboost/constant.py +0 -0
  47. {funboost-48.1 → funboost-48.2}/funboost/consumers/__init__.py +0 -0
  48. {funboost-48.1 → funboost-48.2}/funboost/consumers/celery_consumer.py +0 -0
  49. {funboost-48.1 → funboost-48.2}/funboost/consumers/confirm_mixin.py +0 -0
  50. {funboost-48.1 → funboost-48.2}/funboost/consumers/dramatiq_consumer.py +0 -0
  51. {funboost-48.1 → funboost-48.2}/funboost/consumers/empty_consumer.py +0 -0
  52. {funboost-48.1 → funboost-48.2}/funboost/consumers/faststream_consumer.py +0 -0
  53. {funboost-48.1 → funboost-48.2}/funboost/consumers/http_consumer.py +0 -0
  54. {funboost-48.1 → funboost-48.2}/funboost/consumers/http_consumer000.py +0 -0
  55. {funboost-48.1 → funboost-48.2}/funboost/consumers/httpsqs_consumer.py +0 -0
  56. {funboost-48.1 → funboost-48.2}/funboost/consumers/huey_consumer.py +0 -0
  57. {funboost-48.1 → funboost-48.2}/funboost/consumers/kafka_consumer.py +0 -0
  58. {funboost-48.1 → funboost-48.2}/funboost/consumers/kafka_consumer_manually_commit.py +0 -0
  59. {funboost-48.1 → funboost-48.2}/funboost/consumers/kombu_consumer.py +0 -0
  60. {funboost-48.1 → funboost-48.2}/funboost/consumers/local_python_queue_consumer.py +0 -0
  61. {funboost-48.1 → funboost-48.2}/funboost/consumers/memory_deque_consumer.py +0 -0
  62. {funboost-48.1 → funboost-48.2}/funboost/consumers/mongomq_consumer.py +0 -0
  63. {funboost-48.1 → funboost-48.2}/funboost/consumers/mqtt_consumer.py +0 -0
  64. {funboost-48.1 → funboost-48.2}/funboost/consumers/nameko_consumer.py +0 -0
  65. {funboost-48.1 → funboost-48.2}/funboost/consumers/nats_consumer.py +0 -0
  66. {funboost-48.1 → funboost-48.2}/funboost/consumers/nsq_consumer.py +0 -0
  67. {funboost-48.1 → funboost-48.2}/funboost/consumers/peewee_conusmer.py +0 -0
  68. {funboost-48.1 → funboost-48.2}/funboost/consumers/persist_queue_consumer.py +0 -0
  69. {funboost-48.1 → funboost-48.2}/funboost/consumers/pulsar_consumer.py +0 -0
  70. {funboost-48.1 → funboost-48.2}/funboost/consumers/rabbitmq_amqpstorm_consumer.py +0 -0
  71. {funboost-48.1 → funboost-48.2}/funboost/consumers/rabbitmq_pika_consumer.py +0 -0
  72. {funboost-48.1 → funboost-48.2}/funboost/consumers/rabbitmq_pika_consumerv0.py +0 -0
  73. {funboost-48.1 → funboost-48.2}/funboost/consumers/rabbitmq_rabbitpy_consumer.py +0 -0
  74. {funboost-48.1 → funboost-48.2}/funboost/consumers/redis_brpoplpush_consumer.py +0 -0
  75. {funboost-48.1 → funboost-48.2}/funboost/consumers/redis_consumer.py +0 -0
  76. {funboost-48.1 → funboost-48.2}/funboost/consumers/redis_consumer_ack_able.py +0 -0
  77. {funboost-48.1 → funboost-48.2}/funboost/consumers/redis_consumer_ack_using_timeout.py +0 -0
  78. {funboost-48.1 → funboost-48.2}/funboost/consumers/redis_consumer_priority.py +0 -0
  79. {funboost-48.1 → funboost-48.2}/funboost/consumers/redis_consumer_simple.py +0 -0
  80. {funboost-48.1 → funboost-48.2}/funboost/consumers/redis_filter.py +0 -0
  81. {funboost-48.1 → funboost-48.2}/funboost/consumers/redis_pubsub_consumer.py +0 -0
  82. {funboost-48.1 → funboost-48.2}/funboost/consumers/redis_stream_consumer.py +0 -0
  83. {funboost-48.1 → funboost-48.2}/funboost/consumers/rocketmq_consumer.py +0 -0
  84. {funboost-48.1 → funboost-48.2}/funboost/consumers/rq_consumer.py +0 -0
  85. {funboost-48.1 → funboost-48.2}/funboost/consumers/sqlachemy_consumer.py +0 -0
  86. {funboost-48.1 → funboost-48.2}/funboost/consumers/tcp_consumer.py +0 -0
  87. {funboost-48.1 → funboost-48.2}/funboost/consumers/txt_file_consumer.py +0 -0
  88. {funboost-48.1 → funboost-48.2}/funboost/consumers/udp_consumer.py +0 -0
  89. {funboost-48.1 → funboost-48.2}/funboost/consumers/zeromq_consumer.py +0 -0
  90. {funboost-48.1 → funboost-48.2}/funboost/contrib/__init__.py +0 -0
  91. {funboost-48.1 → funboost-48.2}/funboost/contrib/api_publish_msg.py +0 -0
  92. {funboost-48.1 → funboost-48.2}/funboost/contrib/django_db_deco.py +0 -0
  93. {funboost-48.1 → funboost-48.2}/funboost/contrib/queue2queue.py +0 -0
  94. {funboost-48.1 → funboost-48.2}/funboost/contrib/redis_consume_latest_msg_broker.py +0 -0
  95. {funboost-48.1 → funboost-48.2}/funboost/contrib/save_result_status_to_sqldb.py +0 -0
  96. {funboost-48.1 → funboost-48.2}/funboost/core/__init__.py +0 -0
  97. {funboost-48.1 → funboost-48.2}/funboost/core/booster.py +0 -0
  98. {funboost-48.1 → funboost-48.2}/funboost/core/cli/__init__.py +0 -0
  99. {funboost-48.1 → funboost-48.2}/funboost/core/cli/discovery_boosters.py +0 -0
  100. {funboost-48.1 → funboost-48.2}/funboost/core/cli/funboost_cli_user_templ.py +0 -0
  101. {funboost-48.1 → funboost-48.2}/funboost/core/cli/funboost_fire.py +0 -0
  102. {funboost-48.1 → funboost-48.2}/funboost/core/current_task.py +0 -0
  103. {funboost-48.1 → funboost-48.2}/funboost/core/exceptions.py +0 -0
  104. {funboost-48.1 → funboost-48.2}/funboost/core/fabric_deploy_helper.py +0 -0
  105. {funboost-48.1 → funboost-48.2}/funboost/core/funboost_config_getter.py +0 -0
  106. {funboost-48.1 → funboost-48.2}/funboost/core/funboost_time.py +0 -0
  107. {funboost-48.1 → funboost-48.2}/funboost/core/func_params_model.py +0 -0
  108. {funboost-48.1 → funboost-48.2}/funboost/core/function_result_status_config.py +0 -0
  109. {funboost-48.1 → funboost-48.2}/funboost/core/function_result_status_saver.py +0 -0
  110. {funboost-48.1 → funboost-48.2}/funboost/core/helper_funs.py +0 -0
  111. {funboost-48.1 → funboost-48.2}/funboost/core/kill_remote_task.py +0 -0
  112. {funboost-48.1 → funboost-48.2}/funboost/core/lazy_impoter.py +0 -0
  113. {funboost-48.1 → funboost-48.2}/funboost/core/loggers.py +0 -0
  114. {funboost-48.1 → funboost-48.2}/funboost/core/msg_result_getter.py +0 -0
  115. {funboost-48.1 → funboost-48.2}/funboost/core/muliti_process_enhance.py +0 -0
  116. {funboost-48.1 → funboost-48.2}/funboost/core/serialization.py +0 -0
  117. {funboost-48.1 → funboost-48.2}/funboost/core/task_id_logger.py +0 -0
  118. {funboost-48.1 → funboost-48.2}/funboost/factories/__init__.py +0 -0
  119. {funboost-48.1 → funboost-48.2}/funboost/factories/broker_kind__publsiher_consumer_type_map.py +0 -0
  120. {funboost-48.1 → funboost-48.2}/funboost/factories/consumer_factory.py +0 -0
  121. {funboost-48.1 → funboost-48.2}/funboost/factories/publisher_factotry.py +0 -0
  122. {funboost-48.1 → funboost-48.2}/funboost/funboost_config_deafult.py +0 -0
  123. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
  124. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/__pycache__/functions.cpython-39.pyc +0 -0
  125. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/app.py +0 -0
  126. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/functions.py +0 -0
  127. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/assets/css/custom.css +0 -0
  128. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/assets/css/jquery.mCustomScrollbar.min.css +0 -0
  129. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/assets/img/user.jpg +0 -0
  130. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/assets/js/custom.js +0 -0
  131. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/assets/js/jquery.mCustomScrollbar.concat.min.js +0 -0
  132. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/css/style.css +0 -0
  133. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/images/bg.jpg +0 -0
  134. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/images/favicon.ico +0 -0
  135. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/images/password.png +0 -0
  136. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/images/tick.png +0 -0
  137. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/images/user.png +0 -0
  138. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/js/bootstrap-datetimepicker.min.js +0 -0
  139. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/js/echarts.min.js +0 -0
  140. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/js/jquery-1.11.0.min.js +0 -0
  141. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/js/moment-with-locales.min.js +0 -0
  142. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/static/js/select2.min.js +0 -0
  143. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/templates/about.html +0 -0
  144. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/templates/conusme_speed.html +0 -0
  145. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/templates/fun_result_table.html +0 -0
  146. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/templates/index.html +0 -0
  147. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/templates/index_backup.html +0 -0
  148. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/templates/index_/344/270/215/345/217/257/346/212/230/345/217/240.html" +0 -0
  149. {funboost-48.1 → funboost-48.2}/funboost/function_result_web/templates/login.html +0 -0
  150. {funboost-48.1 → funboost-48.2}/funboost/publishers/__init__.py +0 -0
  151. {funboost-48.1 → funboost-48.2}/funboost/publishers/base_publisher.py +0 -0
  152. {funboost-48.1 → funboost-48.2}/funboost/publishers/celery_publisher.py +0 -0
  153. {funboost-48.1 → funboost-48.2}/funboost/publishers/celery_publisher000.py +0 -0
  154. {funboost-48.1 → funboost-48.2}/funboost/publishers/confluent_kafka_publisher.py +0 -0
  155. {funboost-48.1 → funboost-48.2}/funboost/publishers/dramatiq_publisher.py +0 -0
  156. {funboost-48.1 → funboost-48.2}/funboost/publishers/empty_publisher.py +0 -0
  157. {funboost-48.1 → funboost-48.2}/funboost/publishers/faststream_publisher.py +0 -0
  158. {funboost-48.1 → funboost-48.2}/funboost/publishers/http_publisher.py +0 -0
  159. {funboost-48.1 → funboost-48.2}/funboost/publishers/httpsqs_publisher.py +0 -0
  160. {funboost-48.1 → funboost-48.2}/funboost/publishers/huey_publisher.py +0 -0
  161. {funboost-48.1 → funboost-48.2}/funboost/publishers/kafka_publisher.py +0 -0
  162. {funboost-48.1 → funboost-48.2}/funboost/publishers/kombu_publisher.py +0 -0
  163. {funboost-48.1 → funboost-48.2}/funboost/publishers/local_python_queue_publisher.py +0 -0
  164. {funboost-48.1 → funboost-48.2}/funboost/publishers/meomory_deque_publisher.py +0 -0
  165. {funboost-48.1 → funboost-48.2}/funboost/publishers/mongomq_publisher.py +0 -0
  166. {funboost-48.1 → funboost-48.2}/funboost/publishers/mqtt_publisher.py +0 -0
  167. {funboost-48.1 → funboost-48.2}/funboost/publishers/nameko_publisher.py +0 -0
  168. {funboost-48.1 → funboost-48.2}/funboost/publishers/nats_publisher.py +0 -0
  169. {funboost-48.1 → funboost-48.2}/funboost/publishers/nsq_publisher.py +0 -0
  170. {funboost-48.1 → funboost-48.2}/funboost/publishers/peewee_publisher.py +0 -0
  171. {funboost-48.1 → funboost-48.2}/funboost/publishers/persist_queue_publisher.py +0 -0
  172. {funboost-48.1 → funboost-48.2}/funboost/publishers/pulsar_publisher.py +0 -0
  173. {funboost-48.1 → funboost-48.2}/funboost/publishers/rabbitmq_amqpstorm_publisher.py +0 -0
  174. {funboost-48.1 → funboost-48.2}/funboost/publishers/rabbitmq_pika_publisher.py +0 -0
  175. {funboost-48.1 → funboost-48.2}/funboost/publishers/rabbitmq_rabbitpy_publisher.py +0 -0
  176. {funboost-48.1 → funboost-48.2}/funboost/publishers/redis_publisher.py +0 -0
  177. {funboost-48.1 → funboost-48.2}/funboost/publishers/redis_publisher_lpush.py +0 -0
  178. {funboost-48.1 → funboost-48.2}/funboost/publishers/redis_publisher_priority.py +0 -0
  179. {funboost-48.1 → funboost-48.2}/funboost/publishers/redis_publisher_simple.py +0 -0
  180. {funboost-48.1 → funboost-48.2}/funboost/publishers/redis_pubsub_publisher.py +0 -0
  181. {funboost-48.1 → funboost-48.2}/funboost/publishers/redis_queue_flush_mixin.py +0 -0
  182. {funboost-48.1 → funboost-48.2}/funboost/publishers/redis_stream_publisher.py +0 -0
  183. {funboost-48.1 → funboost-48.2}/funboost/publishers/rocketmq_publisher.py +0 -0
  184. {funboost-48.1 → funboost-48.2}/funboost/publishers/rq_publisher.py +0 -0
  185. {funboost-48.1 → funboost-48.2}/funboost/publishers/sqla_queue_publisher.py +0 -0
  186. {funboost-48.1 → funboost-48.2}/funboost/publishers/tcp_publisher.py +0 -0
  187. {funboost-48.1 → funboost-48.2}/funboost/publishers/txt_file_publisher.py +0 -0
  188. {funboost-48.1 → funboost-48.2}/funboost/publishers/udp_publisher.py +0 -0
  189. {funboost-48.1 → funboost-48.2}/funboost/publishers/zeromq_publisher.py +0 -0
  190. {funboost-48.1 → funboost-48.2}/funboost/queues/__init__.py +0 -0
  191. {funboost-48.1 → funboost-48.2}/funboost/queues/memory_queues_map.py +0 -0
  192. {funboost-48.1 → funboost-48.2}/funboost/queues/peewee_queue.py +0 -0
  193. {funboost-48.1 → funboost-48.2}/funboost/queues/sqla_queue.py +0 -0
  194. {funboost-48.1 → funboost-48.2}/funboost/set_frame_config.py +0 -0
  195. {funboost-48.1 → funboost-48.2}/funboost/timing_job/__init__.py +0 -0
  196. {funboost-48.1 → funboost-48.2}/funboost/timing_job/apscheduler_use_mysql_store.py +0 -0
  197. {funboost-48.1 → funboost-48.2}/funboost/timing_job/apscheduler_use_redis_store.py +0 -0
  198. {funboost-48.1 → funboost-48.2}/funboost/timing_job/timing_job_base.py +0 -0
  199. {funboost-48.1 → funboost-48.2}/funboost/timing_job/timing_push.py +0 -0
  200. {funboost-48.1 → funboost-48.2}/funboost/utils/__init__.py +0 -0
  201. {funboost-48.1 → funboost-48.2}/funboost/utils/apscheduler_monkey.py +0 -0
  202. {funboost-48.1 → funboost-48.2}/funboost/utils/block_exit.py +0 -0
  203. {funboost-48.1 → funboost-48.2}/funboost/utils/bulk_operation.py +0 -0
  204. {funboost-48.1 → funboost-48.2}/funboost/utils/class_utils.py +0 -0
  205. {funboost-48.1 → funboost-48.2}/funboost/utils/class_utils2.py +0 -0
  206. {funboost-48.1 → funboost-48.2}/funboost/utils/ctrl_c_end.py +0 -0
  207. {funboost-48.1 → funboost-48.2}/funboost/utils/custom_pysnooper.py +0 -0
  208. {funboost-48.1 → funboost-48.2}/funboost/utils/decorators.py +0 -0
  209. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages/__init__.py +0 -0
  210. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages/mongomq/__init__.py +0 -0
  211. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages/mongomq/lock.py +0 -0
  212. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages/mongomq/mongomq.py +0 -0
  213. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages/mongomq/mongomq0000.py +0 -0
  214. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages/mongomq/test.py +0 -0
  215. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages/mongomq/utils.py +0 -0
  216. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/__init__.py +0 -0
  217. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc +0 -0
  218. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc +0 -0
  219. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
  220. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc +0 -0
  221. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc +0 -0
  222. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
  223. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py +0 -0
  224. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py +0 -0
  225. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc +0 -0
  226. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-37.pyc +0 -0
  227. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-39.pyc +0 -0
  228. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-311.pyc +0 -0
  229. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-37.pyc +0 -0
  230. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-39.pyc +0 -0
  231. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-311.pyc +0 -0
  232. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-37.pyc +0 -0
  233. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
  234. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-311.pyc +0 -0
  235. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-37.pyc +0 -0
  236. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-39.pyc +0 -0
  237. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-311.pyc +0 -0
  238. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-37.pyc +0 -0
  239. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-39.pyc +0 -0
  240. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-311.pyc +0 -0
  241. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-37.pyc +0 -0
  242. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-39.pyc +0 -0
  243. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-311.pyc +0 -0
  244. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-37.pyc +0 -0
  245. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-39.pyc +0 -0
  246. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/client.py +0 -0
  247. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/compat.py +0 -0
  248. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/connection.py +0 -0
  249. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py +0 -0
  250. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py +0 -0
  251. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py +0 -0
  252. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed +0 -0
  253. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -0
  254. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py +0 -0
  255. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py +0 -0
  256. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/StoppableThread.py +0 -0
  257. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__init__.py +0 -0
  258. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-311.pyc +0 -0
  259. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-37.pyc +0 -0
  260. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-39.pyc +0 -0
  261. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-311.pyc +0 -0
  262. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-37.pyc +0 -0
  263. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-39.pyc +0 -0
  264. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-311.pyc +0 -0
  265. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-37.pyc +0 -0
  266. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-39.pyc +0 -0
  267. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-311.pyc +0 -0
  268. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-37.pyc +0 -0
  269. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-39.pyc +0 -0
  270. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-311.pyc +0 -0
  271. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-37.pyc +0 -0
  272. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-39.pyc +0 -0
  273. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc.py +0 -0
  274. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc2222.py +0 -0
  275. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/exceptions.py +0 -0
  276. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py2_raise.py +0 -0
  277. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py3_raise.py +0 -0
  278. {funboost-48.1 → funboost-48.2}/funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -0
  279. {funboost-48.1 → funboost-48.2}/funboost/utils/develop_log.py +0 -0
  280. {funboost-48.1 → funboost-48.2}/funboost/utils/expire_lock.py +0 -0
  281. {funboost-48.1 → funboost-48.2}/funboost/utils/func_timeout/StoppableThread.py +0 -0
  282. {funboost-48.1 → funboost-48.2}/funboost/utils/func_timeout/__init__.py +0 -0
  283. {funboost-48.1 → funboost-48.2}/funboost/utils/func_timeout/dafunc.py +0 -0
  284. {funboost-48.1 → funboost-48.2}/funboost/utils/func_timeout/exceptions.py +0 -0
  285. {funboost-48.1 → funboost-48.2}/funboost/utils/func_timeout/py2_raise.py +0 -0
  286. {funboost-48.1 → funboost-48.2}/funboost/utils/func_timeout/py3_raise.py +0 -0
  287. {funboost-48.1 → funboost-48.2}/funboost/utils/json_helper.py +0 -0
  288. {funboost-48.1 → funboost-48.2}/funboost/utils/mongo_util.py +0 -0
  289. {funboost-48.1 → funboost-48.2}/funboost/utils/monkey_color_log.py +0 -0
  290. {funboost-48.1 → funboost-48.2}/funboost/utils/monkey_patches.py +0 -0
  291. {funboost-48.1 → funboost-48.2}/funboost/utils/mqtt_util.py +0 -0
  292. {funboost-48.1 → funboost-48.2}/funboost/utils/paramiko_util.py +0 -0
  293. {funboost-48.1 → funboost-48.2}/funboost/utils/pysnooper_ydf/__init__.py +0 -0
  294. {funboost-48.1 → funboost-48.2}/funboost/utils/pysnooper_ydf/pycompat.py +0 -0
  295. {funboost-48.1 → funboost-48.2}/funboost/utils/pysnooper_ydf/tracer.py +0 -0
  296. {funboost-48.1 → funboost-48.2}/funboost/utils/pysnooper_ydf/utils.py +0 -0
  297. {funboost-48.1 → funboost-48.2}/funboost/utils/pysnooper_ydf/variables.py +0 -0
  298. {funboost-48.1 → funboost-48.2}/funboost/utils/rabbitmq_factory.py +0 -0
  299. {funboost-48.1 → funboost-48.2}/funboost/utils/redis_manager.py +0 -0
  300. {funboost-48.1 → funboost-48.2}/funboost/utils/redis_manager_old.py +0 -0
  301. {funboost-48.1 → funboost-48.2}/funboost/utils/resource_monitoring.py +0 -0
  302. {funboost-48.1 → funboost-48.2}/funboost/utils/restart_python.py +0 -0
  303. {funboost-48.1 → funboost-48.2}/funboost/utils/simple_data_class.py +0 -0
  304. {funboost-48.1 → funboost-48.2}/funboost/utils/str_utils.py +0 -0
  305. {funboost-48.1 → funboost-48.2}/funboost/utils/time_util.py +0 -0
  306. {funboost-48.1 → funboost-48.2}/funboost/utils/times/__init__.py +0 -0
  307. {funboost-48.1 → funboost-48.2}/funboost/utils/times/version.py +0 -0
  308. {funboost-48.1 → funboost-48.2}/funboost/utils/un_strict_json_dumps.py +0 -0
  309. {funboost-48.1 → funboost-48.2}/funboost.egg-info/SOURCES.txt +0 -0
  310. {funboost-48.1 → funboost-48.2}/funboost.egg-info/dependency_links.txt +0 -0
  311. {funboost-48.1 → funboost-48.2}/funboost.egg-info/entry_points.txt +0 -0
  312. {funboost-48.1 → funboost-48.2}/funboost.egg-info/requires.txt +0 -0
  313. {funboost-48.1 → funboost-48.2}/funboost.egg-info/top_level.txt +0 -0
  314. {funboost-48.1 → funboost-48.2}/setup.cfg +0 -0
  315. {funboost-48.1 → funboost-48.2}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: funboost
3
- Version: 48.1
3
+ Version: 48.2
4
4
  Summary: pip install funboost,python全功能分布式函数调度框架,funboost的功能是全面性重量级,用户能想得到的功能99%全都有;funboost的使用方式是轻量级,只有@boost一行代码需要写。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚
5
5
  Home-page: https://github.com/ydf0509/funboost
6
6
  Author: bfzs
@@ -13,7 +13,7 @@ set_frame_config这个模块的 use_config_form_funboost_config_module() 是核
13
13
  这段注释说明和使用的用户无关,只和框架开发人员有关.
14
14
  '''
15
15
 
16
- __version__ = "48.1"
16
+ __version__ = "48.2"
17
17
 
18
18
  from funboost.set_frame_config import show_frame_config
19
19
 
@@ -1131,47 +1131,53 @@ class MetricCalculation:
1131
1131
  self.execute_task_times_every_unit_time_temp = 0 # 每单位时间执行了多少次任务。
1132
1132
  self.execute_task_times_every_unit_time_temp_fail =0 # 每单位时间执行了多少次任务失败。
1133
1133
  self.current_time_for_execute_task_times_every_unit_time = time.time()
1134
- self.consuming_function_cost_time_total_every_unit_time = 0
1134
+ self.consuming_function_cost_time_total_every_unit_time_tmp = 0
1135
1135
  self.last_execute_task_time = time.time() # 最近一次执行任务的时间。
1136
1136
  self.last_x_s_execute_count = 0
1137
1137
  self.last_x_s_execute_count_fail = 0
1138
+ self.last_x_s_avarage_function_spend_time = None
1138
1139
  self.last_show_remaining_execution_time = 0
1139
1140
  self.show_remaining_execution_time_interval = 300
1140
1141
  self.msg_num_in_broker = 0
1141
1142
  self.last_get_msg_num_ts = 0
1142
1143
  self.last_timestamp_when_has_task_in_queue = 0
1143
1144
  self.last_timestamp_print_msg_num = 0
1144
- self.avarage_function_spend_time = None
1145
+
1145
1146
  self.total_consume_count_from_start =0
1146
1147
  self.total_consume_count_from_start_fail =0
1148
+ self.total_cost_time_from_start = 0 # 函数运行累计花费时间
1149
+ self.last_x_s_total_cost_time = None
1147
1150
 
1148
1151
  def cal(self,t_start_run_fun:float,current_function_result_status:FunctionResultStatus):
1152
+ self.last_execute_task_time = time.time()
1153
+ current_msg_cost_time = time.time() - t_start_run_fun
1149
1154
  self.execute_task_times_every_unit_time_temp += 1
1150
1155
  self.total_consume_count_from_start +=1
1156
+ self.total_cost_time_from_start += current_msg_cost_time
1151
1157
  if current_function_result_status.success is False:
1152
1158
  self.execute_task_times_every_unit_time_temp_fail += 1
1153
1159
  self.total_consume_count_from_start_fail +=1
1154
- self.consuming_function_cost_time_total_every_unit_time += time.time() - t_start_run_fun
1155
- self.last_execute_task_time = time.time()
1160
+ self.consuming_function_cost_time_total_every_unit_time_tmp += current_msg_cost_time
1161
+
1156
1162
  if time.time() - self.current_time_for_execute_task_times_every_unit_time > self.unit_time_for_count:
1157
1163
  self.last_x_s_execute_count = self.execute_task_times_every_unit_time_temp
1158
1164
  self.last_x_s_execute_count_fail = self.execute_task_times_every_unit_time_temp_fail
1159
- self.avarage_function_spend_time = round(self.consuming_function_cost_time_total_every_unit_time / self.last_x_s_execute_count, 4)
1165
+ self.last_x_s_total_cost_time = self.consuming_function_cost_time_total_every_unit_time_tmp
1166
+ self.last_x_s_avarage_function_spend_time = round(self.last_x_s_total_cost_time / self.last_x_s_execute_count, 3)
1160
1167
  msg = f'{self.unit_time_for_count} 秒内执行了 {self.last_x_s_execute_count} 次函数 [ {self.consumer.consuming_function.__name__} ] ,' \
1161
- f'失败了{self.last_x_s_execute_count_fail} 次,函数平均运行耗时 {self.avarage_function_spend_time} 秒。 '
1168
+ f'失败了{self.last_x_s_execute_count_fail} 次,函数平均运行耗时 {self.last_x_s_avarage_function_spend_time} 秒。 '
1162
1169
  self.consumer.logger.info(msg)
1163
1170
  if time.time() - self.last_show_remaining_execution_time > self.show_remaining_execution_time_interval:
1164
1171
  self.msg_num_in_broker = self.consumer.publisher_of_same_queue.get_message_count()
1165
1172
  self.last_get_msg_num_ts = time.time()
1166
1173
  if self.msg_num_in_broker != -1: # 有的中间件无法统计或没实现统计队列剩余数量的,统一返回的是-1,不显示这句话。
1167
- # msg += f''' ,预计还需要 {time_util.seconds_to_hour_minute_second(self._msg_num_in_broker * avarage_function_spend_time / active_consumer_num)} 时间 才能执行完成 {self._msg_num_in_broker}个剩余的任务'''
1168
1174
  need_time = time_util.seconds_to_hour_minute_second(self.msg_num_in_broker / (self.execute_task_times_every_unit_time_temp / self.unit_time_for_count) /
1169
1175
  self.consumer._distributed_consumer_statistics.active_consumer_num)
1170
1176
  msg += f''' 预计还需要 {need_time} 时间 才能执行完成 队列 {self.consumer.queue_name} 中的 {self.msg_num_in_broker} 个剩余任务'''
1171
1177
  self.consumer.logger.info(msg)
1172
1178
  self.last_show_remaining_execution_time = time.time()
1173
1179
  self.current_time_for_execute_task_times_every_unit_time = time.time()
1174
- self.consuming_function_cost_time_total_every_unit_time = 0
1180
+ self.consuming_function_cost_time_total_every_unit_time_tmp = 0
1175
1181
  self.execute_task_times_every_unit_time_temp = 0
1176
1182
  self.execute_task_times_every_unit_time_temp_fail = 0
1177
1183
 
@@ -1181,14 +1187,16 @@ class MetricCalculation:
1181
1187
  'last_x_s_execute_count':self.last_x_s_execute_count,
1182
1188
  'last_x_s_execute_count_fail':self.last_x_s_execute_count_fail,
1183
1189
  'last_execute_task_time':self.last_execute_task_time,
1190
+ 'last_x_s_avarage_function_spend_time':self.last_x_s_avarage_function_spend_time,
1184
1191
  # 'last_show_remaining_execution_time':self.last_show_remaining_execution_time,
1185
- # 'msg_num_in_broker':self.msg_num_in_broker,
1192
+ 'msg_num_in_broker':self.msg_num_in_broker,
1186
1193
  'current_time_for_execute_task_times_every_unit_time':self.current_time_for_execute_task_times_every_unit_time,
1187
1194
  'last_timestamp_when_has_task_in_queue':self.last_timestamp_when_has_task_in_queue,
1188
- 'avarage_function_spend_time':self.avarage_function_spend_time,
1189
1195
  'total_consume_count_from_start':self.total_consume_count_from_start,
1190
- 'total_consume_count_from_start_fail':self.total_consume_count_from_start_fail
1191
-
1196
+ 'total_consume_count_from_start_fail':self.total_consume_count_from_start_fail,
1197
+ 'total_cost_time_from_start':self.total_cost_time_from_start,
1198
+ 'last_x_s_total_cost_time':self.last_x_s_total_cost_time,
1199
+ 'avarage_function_spend_time_from_start':round(self.total_cost_time_from_start / self.total_consume_count_from_start,3) if self.total_consume_count_from_start else None,
1192
1200
  }
1193
1201
 
1194
1202
 
@@ -112,6 +112,16 @@ class QueueConusmerParamsGetter(RedisMixin, FunboostFileLoggerMixin):
112
112
  if info_dict['report_ts'] > time.time() - 15 and info_dict['last_get_msg_num_ts'] > time.time() - 1200:
113
113
  queue__msg_count_dict[queue_name] = info_dict['msg_num_in_broker']
114
114
  return queue__msg_count_dict
115
+
116
+ @staticmethod
117
+ def _sum_filed_from_active_consumers(active_consumers:typing.List[dict],filed:str):
118
+ s = 0
119
+ for c in active_consumers:
120
+ # print(c)
121
+ if c[filed]:
122
+ # print(c[filed])
123
+ s+=c[filed]
124
+ return s
115
125
 
116
126
  def get_queue_params_and_active_consumers(self):
117
127
  queue__active_consumers_map = ActiveCousumerProcessInfoGetter().get_all_hearbeat_info_partition_by_queue_name()
@@ -121,19 +131,29 @@ class QueueConusmerParamsGetter(RedisMixin, FunboostFileLoggerMixin):
121
131
  queue_params_and_active_consumers = {}
122
132
 
123
133
  for queue, consumer_params in queue__consumer_params_map.items():
134
+
124
135
  active_consumers = queue__active_consumers_map.get(queue, [])
125
- all_consumers_last_x_s_execute_count = 0
126
- all_consumers_last_x_s_execute_count_fail =0
127
- for c in active_consumers:
128
- all_consumers_last_x_s_execute_count += c['last_x_s_execute_count']
129
- all_consumers_last_x_s_execute_count_fail += c['last_x_s_execute_count_fail']
136
+ # print(queue,active_consumers)
137
+ all_consumers_last_x_s_execute_count = self._sum_filed_from_active_consumers(active_consumers,'last_x_s_execute_count')
138
+ all_consumers_last_x_s_execute_count_fail = self._sum_filed_from_active_consumers(active_consumers, 'last_x_s_execute_count_fail')
139
+ all_consumers_last_x_s_total_cost_time = self._sum_filed_from_active_consumers(active_consumers, 'last_x_s_total_cost_time')
140
+ all_consumers_last_x_s_avarage_function_spend_time = round( all_consumers_last_x_s_total_cost_time / all_consumers_last_x_s_execute_count,3) if all_consumers_last_x_s_execute_count else None
141
+
142
+ all_consumers_total_consume_count_from_start = self._sum_filed_from_active_consumers(active_consumers, 'total_consume_count_from_start')
143
+ all_consumers_total_cost_time_from_start =self._sum_filed_from_active_consumers(active_consumers, 'total_cost_time_from_start')
144
+ all_consumers_avarage_function_spend_time_from_start = round(all_consumers_total_cost_time_from_start / all_consumers_total_consume_count_from_start,3) if all_consumers_total_consume_count_from_start else None
145
+
130
146
  queue_params_and_active_consumers[queue] = {
131
- 'queue_params':consumer_params,
132
- 'active_consumers':active_consumers,
133
- 'pause_flag':queue__pause_map.get(queue,-1),
134
- 'msg_num_in_broker':queue__msg_count_dict.get(queue,None),
147
+ 'queue_params':consumer_params,
148
+ 'active_consumers':active_consumers,
149
+ 'pause_flag':queue__pause_map.get(queue,-1),
150
+ 'msg_num_in_broker':queue__msg_count_dict.get(queue,None),
135
151
  'all_consumers_last_x_s_execute_count':all_consumers_last_x_s_execute_count,
136
152
  'all_consumers_last_x_s_execute_count_fail':all_consumers_last_x_s_execute_count_fail,
153
+ 'all_consumers_last_x_s_avarage_function_spend_time':all_consumers_last_x_s_avarage_function_spend_time,
154
+ 'all_consumers_avarage_function_spend_time_from_start':all_consumers_avarage_function_spend_time_from_start,
155
+ 'all_consumers_total_consume_count_from_start':self._sum_filed_from_active_consumers(active_consumers, 'total_consume_count_from_start'),
156
+ 'all_consumers_total_consume_count_from_start_fail':self._sum_filed_from_active_consumers(active_consumers, 'total_consume_count_from_start_fail'),
137
157
  }
138
158
  return queue_params_and_active_consumers
139
159
 
@@ -35,5 +35,5 @@ max-height: 600px !important; /* 确保覆盖默认样式 */
35
35
  max-width: 100%;
36
36
  }
37
37
  .tabulator {
38
- min-width: 1500px;
38
+ /* min-width: 1500px; */
39
39
  }
@@ -57,10 +57,11 @@
57
57
  var table = new Tabulator("#queue-table", {
58
58
  theme: "bootstrap3",
59
59
  ajaxURL: "/queue/params_and_active_consumers",
60
- layout: "fitColumns",
61
- responsiveLayout: "collapse",
60
+ layout: "fitDataTable",
61
+ responsiveLayout: false,
62
62
  pagination: true,
63
63
  paginationSize: 1000,
64
+ height: "auto",
64
65
  locale: true,
65
66
  langs: {
66
67
  "zh-cn": {
@@ -77,11 +78,15 @@
77
78
  }
78
79
  },
79
80
  columns: [
80
- { title: "<br>队列名字", field: "queue_name", sorter: "string", width: 250 },
81
- { title: "broker<br>类型", field: "broker_kind", sorter: "string", width: 100 },
82
- { title: "10秒<br>完成", field: "all_consumers_last_x_s_execute_count", sorter: "number", width: 100 },
83
- { title: "10秒<br>失败", field: "all_consumers_last_x_s_execute_count_fail", sorter: "int", width: 100 },
84
- { title: "<br>消息数量", field: "msg_count", sorter: "number", width: 170,
81
+ { title: "<br><br>队列名字", field: "queue_name", sorter: "string", headerSort: true, headerHozAlign: "center", hozAlign: "left", minWidth: 200, headerWordWrap: true },
82
+ { title: "<br>broker<br>类型", field: "broker_kind", sorter: "string" },
83
+ { title: "<br>近10秒<br>完成", field: "all_consumers_last_x_s_execute_count", sorter: "number", width: 100 },
84
+ { title: "<br>近10秒<br>失败", field: "all_consumers_last_x_s_execute_count_fail", sorter: "number", width: 100 },
85
+
86
+ { title: "近10秒<br>函数运行<br>平均耗时", field: "all_consumers_last_x_s_avarage_function_spend_time", sorter: "number", width: 100 },
87
+ { title: "累计<br>函数运行<br>平均耗时", field: "all_consumers_avarage_function_spend_time_from_start", sorter: "number", width: 100 },
88
+
89
+ { title: "<br><br>消息数量", field: "msg_count", sorter: "number", width: 170,
85
90
  formatter: function(cell) {
86
91
  const row = cell.getRow().getData();
87
92
  return `
@@ -92,7 +97,7 @@
92
97
  `;
93
98
  }
94
99
  },
95
- { title: "<br>consumer数量", field: "consumer_count", sorter: "number", width: 200,
100
+ { title: "<br><br>consumer数量", field: "consumer_count", sorter: "number", width: 200,
96
101
  formatter: function(cell) {
97
102
  const row = cell.getRow().getData();
98
103
  var consumers = row.active_consumers;
@@ -107,7 +112,7 @@
107
112
  }
108
113
  },
109
114
  {
110
- title: "暂停消<br>费状态",
115
+ title: "暂停<br>消费<br>状态",
111
116
  field: "pause_flag",
112
117
  width: 100,
113
118
  formatter: function(cell) {
@@ -115,7 +120,7 @@
115
120
  }
116
121
  },
117
122
  {
118
- title: "<br>操作",
123
+ title: "<br><br>操作",
119
124
  width: 400,
120
125
  formatter: function(cell) {
121
126
  const row = cell.getRow().getData();
@@ -139,7 +144,9 @@
139
144
  consumer_count: data.active_consumers.length,
140
145
  active_consumers: data.active_consumers,
141
146
  queue_params: data.queue_params,
142
- pause_flag: data.pause_flag
147
+ pause_flag: data.pause_flag ,
148
+ all_consumers_last_x_s_avarage_function_spend_time:data.all_consumers_last_x_s_avarage_function_spend_time,
149
+ all_consumers_avarage_function_spend_time_from_start:data.all_consumers_avarage_function_spend_time_from_start
143
150
  }));
144
151
  },
145
152
  });
@@ -269,15 +276,17 @@
269
276
  <td>${consumer.code_filename}</td>,
270
277
  <td>${consumer.last_x_s_execute_count}</td>
271
278
  <td>${consumer.last_x_s_execute_count_fail}</td>
279
+ <td>${consumer.last_x_s_avarage_function_spend_time}</td>
272
280
  <td>${consumer.total_consume_count_from_start}</td>
273
281
  <td>${consumer.total_consume_count_from_start_fail}</td>
282
+ <td>${consumer.avarage_function_spend_time_from_start}</td>
274
283
  </tr>
275
284
  `;
276
285
  });
277
286
 
278
287
  const modalHtml = `
279
288
  <div class="modal" id="consumerDetailsModal" tabindex="-1" role="dialog">
280
- <div class="modal-dialog" style="width: 80%;" role="document">
289
+ <div class="modal-dialog" style="width: 90%;" role="document">
281
290
  <div class="modal-content">
282
291
  <div class="modal-header">
283
292
  <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
@@ -296,8 +305,10 @@
296
305
  <th>代码文件名</th>
297
306
  <th>近10秒<br>运行完成<br>消息个数</th>
298
307
  <th>近10秒<br>运行失败<br>消息个数</th>
308
+ <th>近10秒<br>函数运行<br>平均耗时</th>
299
309
  <th>累计<br>运行完成<br>消息个数</th>
300
310
  <th>累计<br>运行失败<br>消息个数</th>
311
+ <th>累计<br>函数运行<br>平均耗时</th>
301
312
  </tr>
302
313
  </thead>
303
314
  <tbody>
@@ -42,7 +42,6 @@
42
42
  <script type="text/javascript" src="https://unpkg.com/tabulator-tables@5.5.0/dist/js/tabulator.min.js"></script>
43
43
 
44
44
  <style>
45
-
46
45
 
47
46
  </style>
48
47
  </head>
@@ -133,7 +132,7 @@
133
132
  layout: "fitDataTable", // 改为 fitDataTable
134
133
  responsiveLayout: false, // 禁用响应式布局
135
134
  columns: [
136
- {title: "<br><br>队列名称", field: "queue_name","width":200},
135
+ {title: "<br><br>队列名称", field: "queue_name"},
137
136
  {title: "<br><br>消费函数", field: "consuming_function"},
138
137
  {title: "<br><br>主机名", field: "computer_name"},
139
138
  {title: "<br><br>IP地址", field: "computer_ip"},
@@ -143,8 +142,11 @@
143
142
 
144
143
  {title:"近10秒<br>运行完成<br>消息个数",field:"last_x_s_execute_count", formatter:"html","width":100},
145
144
  {title:"近10秒<br>运行失败<br>消息个数",field:"last_x_s_execute_count_fail", formatter:"html","width":100},
145
+ {title:"近10秒<br>函数运行<br>平均耗时",field:"last_x_s_avarage_function_spend_time", formatter:"html","width":100},
146
+
146
147
  {title:"累计<br>运行完成<br>消息个数",field:"total_consume_count_from_start", formatter:"html","width":100},
147
148
  {title:"累计<br>运行失败<br>消息个数",field:"total_consume_count_from_start_fail", formatter:"html","width":100},
149
+ {title:"累计<br>函数运行<br>平均耗时",field:"avarage_function_spend_time_from_start", formatter:"html","width":100},
148
150
 
149
151
  {title: "<br><br>代码文件", field: "code_filename"},
150
152
  // {title: "<br><br>consumer_id", field: "consumer_id"},
@@ -168,9 +170,6 @@
168
170
  }
169
171
  }
170
172
  });
171
-
172
- <!-- $("#result-table").css("width", "150%");-->
173
-
174
173
  /* result 例如 [
175
174
  {
176
175
  "code_filename": "d:/codes/funboost/test_frame/test_function_status_result_persist/test_persist.py",
@@ -132,7 +132,7 @@
132
132
  layout: "fitDataTable", // 改为 fitDataTable
133
133
  responsiveLayout: false, // 禁用响应式布局
134
134
  columns: [
135
- {title: "<br><br>队列名称", field: "queue_name","width":200},
135
+ {title: "<br><br>队列名称", field: "queue_name"},
136
136
  {title: "<br><br>消费函数", field: "consuming_function"},
137
137
  {title: "<br><br>主机名", field: "computer_name"},
138
138
  {title: "<br><br>IP地址", field: "computer_ip"},
@@ -142,8 +142,12 @@
142
142
 
143
143
  {title:"近10秒<br>运行完成<br>消息个数",field:"last_x_s_execute_count", formatter:"html","width":100},
144
144
  {title:"近10秒<br>运行失败<br>消息个数",field:"last_x_s_execute_count_fail", formatter:"html","width":100},
145
+ {title:"近10秒<br>函数运行<br>平均耗时",field:"last_x_s_avarage_function_spend_time", formatter:"html","width":100},
146
+
145
147
  {title:"累计<br>运行完成<br>消息个数",field:"total_consume_count_from_start", formatter:"html","width":100},
146
148
  {title:"累计<br>运行失败<br>消息个数",field:"total_consume_count_from_start_fail", formatter:"html","width":100},
149
+ {title:"累计<br>函数运行<br>平均耗时",field:"avarage_function_spend_time_from_start", formatter:"html","width":100},
150
+
147
151
  {title: "<br><br>代码文件", field: "code_filename"},
148
152
  // {title: "<br><br>consumer_id", field: "consumer_id"},
149
153
  {title: "<br><br>consumer_uuid", field: "consumer_uuid"},
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: funboost
3
- Version: 48.1
3
+ Version: 48.2
4
4
  Summary: pip install funboost,python全功能分布式函数调度框架,funboost的功能是全面性重量级,用户能想得到的功能99%全都有;funboost的使用方式是轻量级,只有@boost一行代码需要写。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚
5
5
  Home-page: https://github.com/ydf0509/funboost
6
6
  Author: bfzs
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes