funboost 43.7__tar.gz → 43.9__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 (278) hide show
  1. {funboost-43.7/funboost.egg-info → funboost-43.9}/PKG-INFO +1 -1
  2. {funboost-43.7 → funboost-43.9}/funboost/__init__.py +1 -1
  3. {funboost-43.7 → funboost-43.9}/funboost/consumers/base_consumer.py +39 -10
  4. {funboost-43.7 → funboost-43.9}/funboost/core/booster.py +3 -1
  5. {funboost-43.7 → funboost-43.9}/funboost/core/fabric_deploy_helper.py +6 -11
  6. {funboost-43.7 → funboost-43.9}/funboost/core/func_params_model.py +12 -1
  7. {funboost-43.7 → funboost-43.9}/funboost/core/helper_funs.py +5 -1
  8. {funboost-43.7 → funboost-43.9}/funboost/core/lazy_impoter.py +14 -0
  9. {funboost-43.7 → funboost-43.9}/funboost/publishers/base_publisher.py +3 -2
  10. {funboost-43.7 → funboost-43.9}/funboost/queues/peewee_queue.py +13 -13
  11. {funboost-43.7 → funboost-43.9}/funboost/utils/paramiko_util.py +7 -2
  12. {funboost-43.7 → funboost-43.9/funboost.egg-info}/PKG-INFO +1 -1
  13. {funboost-43.7 → funboost-43.9}/funboost.egg-info/requires.txt +0 -1
  14. {funboost-43.7 → funboost-43.9}/setup.py +1 -1
  15. {funboost-43.7 → funboost-43.9}/LICENSE +0 -0
  16. {funboost-43.7 → funboost-43.9}/MANIFEST.in +0 -0
  17. {funboost-43.7 → funboost-43.9}/README.md +0 -0
  18. {funboost-43.7 → funboost-43.9}/funboost/__init__old.py +0 -0
  19. {funboost-43.7 → funboost-43.9}/funboost/__main__.py +0 -0
  20. {funboost-43.7 → funboost-43.9}/funboost/assist/__init__.py +0 -0
  21. {funboost-43.7 → funboost-43.9}/funboost/assist/celery_helper.py +0 -0
  22. {funboost-43.7 → funboost-43.9}/funboost/assist/dramatiq_helper.py +0 -0
  23. {funboost-43.7 → funboost-43.9}/funboost/assist/huey_helper.py +0 -0
  24. {funboost-43.7 → funboost-43.9}/funboost/assist/rocketry_helper.py +0 -0
  25. {funboost-43.7 → funboost-43.9}/funboost/assist/rq_helper.py +0 -0
  26. {funboost-43.7 → funboost-43.9}/funboost/assist/rq_windows_worker.py +0 -0
  27. {funboost-43.7 → funboost-43.9}/funboost/beggar_version_implementation/beggar_redis_consumer.py +0 -0
  28. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/__init__.py +0 -0
  29. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/async_helper.py +0 -0
  30. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/async_pool_executor.py +0 -0
  31. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/backup/__init__.py +0 -0
  32. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/backup/async_pool_executor0223.py +0 -0
  33. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/backup/async_pool_executor_back.py +0 -0
  34. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/backup/async_pool_executor_janus.py +0 -0
  35. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/base_pool_type.py +0 -0
  36. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py +0 -0
  37. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/bounded_processpoolexcutor_py36.py +0 -0
  38. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/bounded_threadpoolexcutor.py +0 -0
  39. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py +0 -0
  40. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/custom_evenlet_pool_executor.py +0 -0
  41. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/custom_gevent_pool_executor.py +0 -0
  42. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/custom_threadpool_executor.py +0 -0
  43. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/custom_threadpool_executor000.py +0 -0
  44. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/fixed_thread_pool.py +0 -0
  45. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/flexible_thread_pool.py +0 -0
  46. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/pool_commons.py +0 -0
  47. {funboost-43.7 → funboost-43.9}/funboost/concurrent_pool/single_thread_executor.py +0 -0
  48. {funboost-43.7 → funboost-43.9}/funboost/constant.py +0 -0
  49. {funboost-43.7 → funboost-43.9}/funboost/consumers/__init__.py +0 -0
  50. {funboost-43.7 → funboost-43.9}/funboost/consumers/celery_consumer.py +0 -0
  51. {funboost-43.7 → funboost-43.9}/funboost/consumers/confirm_mixin.py +0 -0
  52. {funboost-43.7 → funboost-43.9}/funboost/consumers/dramatiq_consumer.py +0 -0
  53. {funboost-43.7 → funboost-43.9}/funboost/consumers/http_consumer.py +0 -0
  54. {funboost-43.7 → funboost-43.9}/funboost/consumers/http_consumer000.py +0 -0
  55. {funboost-43.7 → funboost-43.9}/funboost/consumers/httpsqs_consumer.py +0 -0
  56. {funboost-43.7 → funboost-43.9}/funboost/consumers/huey_consumer.py +0 -0
  57. {funboost-43.7 → funboost-43.9}/funboost/consumers/kafka_consumer.py +0 -0
  58. {funboost-43.7 → funboost-43.9}/funboost/consumers/kafka_consumer_manually_commit.py +0 -0
  59. {funboost-43.7 → funboost-43.9}/funboost/consumers/kombu_consumer.py +0 -0
  60. {funboost-43.7 → funboost-43.9}/funboost/consumers/local_python_queue_consumer.py +0 -0
  61. {funboost-43.7 → funboost-43.9}/funboost/consumers/memory_deque_consumer.py +0 -0
  62. {funboost-43.7 → funboost-43.9}/funboost/consumers/mongomq_consumer.py +0 -0
  63. {funboost-43.7 → funboost-43.9}/funboost/consumers/mqtt_consumer.py +0 -0
  64. {funboost-43.7 → funboost-43.9}/funboost/consumers/nameko_consumer.py +0 -0
  65. {funboost-43.7 → funboost-43.9}/funboost/consumers/nats_consumer.py +0 -0
  66. {funboost-43.7 → funboost-43.9}/funboost/consumers/nsq_consumer.py +0 -0
  67. {funboost-43.7 → funboost-43.9}/funboost/consumers/peewee_conusmer.py +0 -0
  68. {funboost-43.7 → funboost-43.9}/funboost/consumers/persist_queue_consumer.py +0 -0
  69. {funboost-43.7 → funboost-43.9}/funboost/consumers/pulsar_consumer.py +0 -0
  70. {funboost-43.7 → funboost-43.9}/funboost/consumers/rabbitmq_amqpstorm_consumer.py +0 -0
  71. {funboost-43.7 → funboost-43.9}/funboost/consumers/rabbitmq_pika_consumer.py +0 -0
  72. {funboost-43.7 → funboost-43.9}/funboost/consumers/rabbitmq_pika_consumerv0.py +0 -0
  73. {funboost-43.7 → funboost-43.9}/funboost/consumers/rabbitmq_rabbitpy_consumer.py +0 -0
  74. {funboost-43.7 → funboost-43.9}/funboost/consumers/redis_brpoplpush_consumer.py +0 -0
  75. {funboost-43.7 → funboost-43.9}/funboost/consumers/redis_consumer.py +0 -0
  76. {funboost-43.7 → funboost-43.9}/funboost/consumers/redis_consumer_ack_able.py +0 -0
  77. {funboost-43.7 → funboost-43.9}/funboost/consumers/redis_consumer_priority.py +0 -0
  78. {funboost-43.7 → funboost-43.9}/funboost/consumers/redis_consumer_simple.py +0 -0
  79. {funboost-43.7 → funboost-43.9}/funboost/consumers/redis_filter.py +0 -0
  80. {funboost-43.7 → funboost-43.9}/funboost/consumers/redis_pubsub_consumer.py +0 -0
  81. {funboost-43.7 → funboost-43.9}/funboost/consumers/redis_stream_consumer.py +0 -0
  82. {funboost-43.7 → funboost-43.9}/funboost/consumers/rocketmq_consumer.py +0 -0
  83. {funboost-43.7 → funboost-43.9}/funboost/consumers/rq_consumer.py +0 -0
  84. {funboost-43.7 → funboost-43.9}/funboost/consumers/sqlachemy_consumer.py +0 -0
  85. {funboost-43.7 → funboost-43.9}/funboost/consumers/tcp_consumer.py +0 -0
  86. {funboost-43.7 → funboost-43.9}/funboost/consumers/txt_file_consumer.py +0 -0
  87. {funboost-43.7 → funboost-43.9}/funboost/consumers/udp_consumer.py +0 -0
  88. {funboost-43.7 → funboost-43.9}/funboost/consumers/zeromq_consumer.py +0 -0
  89. {funboost-43.7 → funboost-43.9}/funboost/contrib/__init__.py +0 -0
  90. {funboost-43.7 → funboost-43.9}/funboost/contrib/api_publish_msg.py +0 -0
  91. {funboost-43.7 → funboost-43.9}/funboost/contrib/django_db_deco.py +0 -0
  92. {funboost-43.7 → funboost-43.9}/funboost/contrib/queue2queue.py +0 -0
  93. {funboost-43.7 → funboost-43.9}/funboost/contrib/redis_consume_latest_msg_broker.py +0 -0
  94. {funboost-43.7 → funboost-43.9}/funboost/contrib/save_result_status_to_sqldb.py +0 -0
  95. {funboost-43.7 → funboost-43.9}/funboost/core/__init__.py +0 -0
  96. {funboost-43.7 → funboost-43.9}/funboost/core/active_cousumer_info_getter.py +0 -0
  97. {funboost-43.7 → funboost-43.9}/funboost/core/cli/__init__.py +0 -0
  98. {funboost-43.7 → funboost-43.9}/funboost/core/cli/discovery_boosters.py +0 -0
  99. {funboost-43.7 → funboost-43.9}/funboost/core/cli/funboost_cli_user_templ.py +0 -0
  100. {funboost-43.7 → funboost-43.9}/funboost/core/cli/funboost_fire.py +0 -0
  101. {funboost-43.7 → funboost-43.9}/funboost/core/current_task.py +0 -0
  102. {funboost-43.7 → funboost-43.9}/funboost/core/exceptions.py +0 -0
  103. {funboost-43.7 → funboost-43.9}/funboost/core/function_result_status_config.py +0 -0
  104. {funboost-43.7 → funboost-43.9}/funboost/core/function_result_status_saver.py +0 -0
  105. {funboost-43.7 → funboost-43.9}/funboost/core/kill_remote_task.py +0 -0
  106. {funboost-43.7 → funboost-43.9}/funboost/core/loggers.py +0 -0
  107. {funboost-43.7 → funboost-43.9}/funboost/core/msg_result_getter.py +0 -0
  108. {funboost-43.7 → funboost-43.9}/funboost/core/muliti_process_enhance.py +0 -0
  109. {funboost-43.7 → funboost-43.9}/funboost/core/task_id_logger.py +0 -0
  110. {funboost-43.7 → funboost-43.9}/funboost/core/try_get_user_funboost_common_config.py +0 -0
  111. {funboost-43.7 → funboost-43.9}/funboost/factories/__init__.py +0 -0
  112. {funboost-43.7 → funboost-43.9}/funboost/factories/broker_kind__publsiher_consumer_type_map.py +0 -0
  113. {funboost-43.7 → funboost-43.9}/funboost/factories/consumer_factory.py +0 -0
  114. {funboost-43.7 → funboost-43.9}/funboost/factories/publisher_factotry.py +0 -0
  115. {funboost-43.7 → funboost-43.9}/funboost/funboost_config_deafult.py +0 -0
  116. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
  117. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/__pycache__/functions.cpython-37.pyc +0 -0
  118. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/app.py +0 -0
  119. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/functions.py +0 -0
  120. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/assets/css/custom.css +0 -0
  121. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/assets/css/jquery.mCustomScrollbar.min.css +0 -0
  122. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/assets/img/user.jpg +0 -0
  123. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/assets/js/custom.js +0 -0
  124. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/assets/js/jquery.mCustomScrollbar.concat.min.js +0 -0
  125. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/css/style.css +0 -0
  126. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/images/bg.jpg +0 -0
  127. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/images/password.png +0 -0
  128. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/images/tick.png +0 -0
  129. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/images/user.png +0 -0
  130. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/static/js/jquery-1.11.0.min.js +0 -0
  131. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/templates/index.html +0 -0
  132. {funboost-43.7 → funboost-43.9}/funboost/function_result_web/templates/login.html +0 -0
  133. {funboost-43.7 → funboost-43.9}/funboost/publishers/__init__.py +0 -0
  134. {funboost-43.7 → funboost-43.9}/funboost/publishers/celery_publisher.py +0 -0
  135. {funboost-43.7 → funboost-43.9}/funboost/publishers/celery_publisher000.py +0 -0
  136. {funboost-43.7 → funboost-43.9}/funboost/publishers/confluent_kafka_publisher.py +0 -0
  137. {funboost-43.7 → funboost-43.9}/funboost/publishers/dramatiq_publisher.py +0 -0
  138. {funboost-43.7 → funboost-43.9}/funboost/publishers/http_publisher.py +0 -0
  139. {funboost-43.7 → funboost-43.9}/funboost/publishers/httpsqs_publisher.py +0 -0
  140. {funboost-43.7 → funboost-43.9}/funboost/publishers/huey_publisher.py +0 -0
  141. {funboost-43.7 → funboost-43.9}/funboost/publishers/kafka_publisher.py +0 -0
  142. {funboost-43.7 → funboost-43.9}/funboost/publishers/kombu_publisher.py +0 -0
  143. {funboost-43.7 → funboost-43.9}/funboost/publishers/local_python_queue_publisher.py +0 -0
  144. {funboost-43.7 → funboost-43.9}/funboost/publishers/meomory_deque_publisher.py +0 -0
  145. {funboost-43.7 → funboost-43.9}/funboost/publishers/mongomq_publisher.py +0 -0
  146. {funboost-43.7 → funboost-43.9}/funboost/publishers/mqtt_publisher.py +0 -0
  147. {funboost-43.7 → funboost-43.9}/funboost/publishers/nameko_publisher.py +0 -0
  148. {funboost-43.7 → funboost-43.9}/funboost/publishers/nats_publisher.py +0 -0
  149. {funboost-43.7 → funboost-43.9}/funboost/publishers/nsq_publisher.py +0 -0
  150. {funboost-43.7 → funboost-43.9}/funboost/publishers/peewee_publisher.py +0 -0
  151. {funboost-43.7 → funboost-43.9}/funboost/publishers/persist_queue_publisher.py +0 -0
  152. {funboost-43.7 → funboost-43.9}/funboost/publishers/pulsar_publisher.py +0 -0
  153. {funboost-43.7 → funboost-43.9}/funboost/publishers/rabbitmq_amqpstorm_publisher.py +0 -0
  154. {funboost-43.7 → funboost-43.9}/funboost/publishers/rabbitmq_pika_publisher.py +0 -0
  155. {funboost-43.7 → funboost-43.9}/funboost/publishers/rabbitmq_rabbitpy_publisher.py +0 -0
  156. {funboost-43.7 → funboost-43.9}/funboost/publishers/redis_publisher.py +0 -0
  157. {funboost-43.7 → funboost-43.9}/funboost/publishers/redis_publisher_lpush.py +0 -0
  158. {funboost-43.7 → funboost-43.9}/funboost/publishers/redis_publisher_priority.py +0 -0
  159. {funboost-43.7 → funboost-43.9}/funboost/publishers/redis_publisher_simple.py +0 -0
  160. {funboost-43.7 → funboost-43.9}/funboost/publishers/redis_pubsub_publisher.py +0 -0
  161. {funboost-43.7 → funboost-43.9}/funboost/publishers/redis_queue_flush_mixin.py +0 -0
  162. {funboost-43.7 → funboost-43.9}/funboost/publishers/redis_stream_publisher.py +0 -0
  163. {funboost-43.7 → funboost-43.9}/funboost/publishers/rocketmq_publisher.py +0 -0
  164. {funboost-43.7 → funboost-43.9}/funboost/publishers/rq_publisher.py +0 -0
  165. {funboost-43.7 → funboost-43.9}/funboost/publishers/sqla_queue_publisher.py +0 -0
  166. {funboost-43.7 → funboost-43.9}/funboost/publishers/tcp_publisher.py +0 -0
  167. {funboost-43.7 → funboost-43.9}/funboost/publishers/txt_file_publisher.py +0 -0
  168. {funboost-43.7 → funboost-43.9}/funboost/publishers/udp_publisher.py +0 -0
  169. {funboost-43.7 → funboost-43.9}/funboost/publishers/zeromq_publisher.py +0 -0
  170. {funboost-43.7 → funboost-43.9}/funboost/queues/__init__.py +0 -0
  171. {funboost-43.7 → funboost-43.9}/funboost/queues/sqla_queue.py +0 -0
  172. {funboost-43.7 → funboost-43.9}/funboost/set_frame_config.py +0 -0
  173. {funboost-43.7 → funboost-43.9}/funboost/timing_job/__init__.py +0 -0
  174. {funboost-43.7 → funboost-43.9}/funboost/timing_job/apscheduler_use_mysql_store.py +0 -0
  175. {funboost-43.7 → funboost-43.9}/funboost/timing_job/apscheduler_use_redis_store.py +0 -0
  176. {funboost-43.7 → funboost-43.9}/funboost/utils/__init__.py +0 -0
  177. {funboost-43.7 → funboost-43.9}/funboost/utils/apscheduler_monkey.py +0 -0
  178. {funboost-43.7 → funboost-43.9}/funboost/utils/block_exit.py +0 -0
  179. {funboost-43.7 → funboost-43.9}/funboost/utils/bulk_operation.py +0 -0
  180. {funboost-43.7 → funboost-43.9}/funboost/utils/ctrl_c_end.py +0 -0
  181. {funboost-43.7 → funboost-43.9}/funboost/utils/custom_pysnooper.py +0 -0
  182. {funboost-43.7 → funboost-43.9}/funboost/utils/decorators.py +0 -0
  183. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages/__init__.py +0 -0
  184. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages/mongomq/__init__.py +0 -0
  185. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages/mongomq/lock.py +0 -0
  186. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages/mongomq/mongomq.py +0 -0
  187. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages/mongomq/mongomq0000.py +0 -0
  188. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages/mongomq/test.py +0 -0
  189. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages/mongomq/utils.py +0 -0
  190. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/__init__.py +0 -0
  191. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc +0 -0
  192. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc +0 -0
  193. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
  194. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc +0 -0
  195. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc +0 -0
  196. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
  197. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py +0 -0
  198. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py +0 -0
  199. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc +0 -0
  200. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-37.pyc +0 -0
  201. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-39.pyc +0 -0
  202. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-311.pyc +0 -0
  203. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-37.pyc +0 -0
  204. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-39.pyc +0 -0
  205. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-311.pyc +0 -0
  206. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-37.pyc +0 -0
  207. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
  208. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-311.pyc +0 -0
  209. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-37.pyc +0 -0
  210. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-39.pyc +0 -0
  211. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-311.pyc +0 -0
  212. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-37.pyc +0 -0
  213. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-39.pyc +0 -0
  214. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-311.pyc +0 -0
  215. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-37.pyc +0 -0
  216. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-39.pyc +0 -0
  217. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-311.pyc +0 -0
  218. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-37.pyc +0 -0
  219. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-39.pyc +0 -0
  220. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/client.py +0 -0
  221. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/compat.py +0 -0
  222. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/connection.py +0 -0
  223. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py +0 -0
  224. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py +0 -0
  225. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py +0 -0
  226. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed +0 -0
  227. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -0
  228. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py +0 -0
  229. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py +0 -0
  230. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/StoppableThread.py +0 -0
  231. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__init__.py +0 -0
  232. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-311.pyc +0 -0
  233. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-37.pyc +0 -0
  234. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-39.pyc +0 -0
  235. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-311.pyc +0 -0
  236. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-37.pyc +0 -0
  237. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-39.pyc +0 -0
  238. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-311.pyc +0 -0
  239. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-37.pyc +0 -0
  240. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-39.pyc +0 -0
  241. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-311.pyc +0 -0
  242. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-37.pyc +0 -0
  243. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-39.pyc +0 -0
  244. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-311.pyc +0 -0
  245. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-37.pyc +0 -0
  246. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-39.pyc +0 -0
  247. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc.py +0 -0
  248. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/exceptions.py +0 -0
  249. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py2_raise.py +0 -0
  250. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py3_raise.py +0 -0
  251. {funboost-43.7 → funboost-43.9}/funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -0
  252. {funboost-43.7 → funboost-43.9}/funboost/utils/develop_log.py +0 -0
  253. {funboost-43.7 → funboost-43.9}/funboost/utils/expire_lock.py +0 -0
  254. {funboost-43.7 → funboost-43.9}/funboost/utils/json_helper.py +0 -0
  255. {funboost-43.7 → funboost-43.9}/funboost/utils/mongo_util.py +0 -0
  256. {funboost-43.7 → funboost-43.9}/funboost/utils/monkey_color_log.py +0 -0
  257. {funboost-43.7 → funboost-43.9}/funboost/utils/monkey_patches.py +0 -0
  258. {funboost-43.7 → funboost-43.9}/funboost/utils/mqtt_util.py +0 -0
  259. {funboost-43.7 → funboost-43.9}/funboost/utils/pysnooper_ydf/__init__.py +0 -0
  260. {funboost-43.7 → funboost-43.9}/funboost/utils/pysnooper_ydf/pycompat.py +0 -0
  261. {funboost-43.7 → funboost-43.9}/funboost/utils/pysnooper_ydf/tracer.py +0 -0
  262. {funboost-43.7 → funboost-43.9}/funboost/utils/pysnooper_ydf/utils.py +0 -0
  263. {funboost-43.7 → funboost-43.9}/funboost/utils/pysnooper_ydf/variables.py +0 -0
  264. {funboost-43.7 → funboost-43.9}/funboost/utils/rabbitmq_factory.py +0 -0
  265. {funboost-43.7 → funboost-43.9}/funboost/utils/redis_manager.py +0 -0
  266. {funboost-43.7 → funboost-43.9}/funboost/utils/redis_manager_old.py +0 -0
  267. {funboost-43.7 → funboost-43.9}/funboost/utils/resource_monitoring.py +0 -0
  268. {funboost-43.7 → funboost-43.9}/funboost/utils/restart_python.py +0 -0
  269. {funboost-43.7 → funboost-43.9}/funboost/utils/simple_data_class.py +0 -0
  270. {funboost-43.7 → funboost-43.9}/funboost/utils/time_util.py +0 -0
  271. {funboost-43.7 → funboost-43.9}/funboost/utils/times/__init__.py +0 -0
  272. {funboost-43.7 → funboost-43.9}/funboost/utils/times/version.py +0 -0
  273. {funboost-43.7 → funboost-43.9}/funboost/utils/un_strict_json_dumps.py +0 -0
  274. {funboost-43.7 → funboost-43.9}/funboost.egg-info/SOURCES.txt +0 -0
  275. {funboost-43.7 → funboost-43.9}/funboost.egg-info/dependency_links.txt +0 -0
  276. {funboost-43.7 → funboost-43.9}/funboost.egg-info/entry_points.txt +0 -0
  277. {funboost-43.7 → funboost-43.9}/funboost.egg-info/top_level.txt +0 -0
  278. {funboost-43.7 → funboost-43.9}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: funboost
3
- Version: 43.7
3
+ Version: 43.9
4
4
  Summary: pip install funboost,python全功能分布式函数调度框架,。支持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__ = "43.7"
16
+ __version__ = "43.9"
17
17
 
18
18
  from funboost.set_frame_config import show_frame_config
19
19
 
@@ -33,7 +33,7 @@ import nb_log
33
33
  from funboost.core.current_task import funboost_current_task, get_current_taskid
34
34
  from funboost.core.loggers import develop_logger
35
35
 
36
- from funboost.core.func_params_model import BoosterParams, PublisherParams
36
+ from funboost.core.func_params_model import BoosterParams, PublisherParams, BaseJsonAbleModel
37
37
  from funboost.core.task_id_logger import TaskIdLogger
38
38
  from nb_log import (get_logger, LoggerLevelSetterMixin, LogManager, CompatibleLogger,
39
39
  LoggerMixinDefaultWithFileHandler, stdout_write, is_main_process,
@@ -49,7 +49,7 @@ from funboost.concurrent_pool.single_thread_executor import SoloExecutor
49
49
 
50
50
  from funboost.core.function_result_status_saver import ResultPersistenceHelper, FunctionResultStatus, RunStatus
51
51
 
52
- from funboost.core.helper_funs import delete_keys_and_return_new_dict, get_publish_time
52
+ from funboost.core.helper_funs import delete_keys_and_return_new_dict, get_publish_time, generate_task_id
53
53
 
54
54
  from funboost.concurrent_pool.async_helper import simple_run_in_executor
55
55
  from funboost.concurrent_pool.async_pool_executor import AsyncPoolExecutor
@@ -215,13 +215,15 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
215
215
  self._consuming_function_is_asyncio = inspect.iscoroutinefunction(self.consuming_function)
216
216
  self.custom_init()
217
217
  # develop_logger.warning(consumer_params._log_filename)
218
- self.publisher_params = PublisherParams(queue_name=consumer_params.queue_name, consuming_function=consumer_params.consuming_function,
219
- broker_kind=self.BROKER_KIND, log_level=consumer_params.log_level,
220
- logger_prefix=consumer_params.logger_prefix,
221
- create_logger_file=consumer_params.create_logger_file,
222
- log_filename=consumer_params.log_filename,
223
- logger_name=consumer_params.logger_name,
224
- broker_exclusive_config=self.consumer_params.broker_exclusive_config)
218
+ # self.publisher_params = PublisherParams(queue_name=consumer_params.queue_name, consuming_function=consumer_params.consuming_function,
219
+ # broker_kind=self.BROKER_KIND, log_level=consumer_params.log_level,
220
+ # logger_prefix=consumer_params.logger_prefix,
221
+ # create_logger_file=consumer_params.create_logger_file,
222
+ # log_filename=consumer_params.log_filename,
223
+ # logger_name=consumer_params.logger_name,
224
+ # broker_exclusive_config=self.consumer_params.broker_exclusive_config)
225
+ self.publisher_params = BaseJsonAbleModel.init_by_another_model(PublisherParams, consumer_params)
226
+ # print(self.publisher_params)
225
227
  if is_main_process:
226
228
  self.logger.info(f'{self.queue_name} consumer 的消费者配置:\n {self.consumer_params.json_str_value()}')
227
229
  atexit.register(self.join_shedual_task_thread)
@@ -381,6 +383,33 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
381
383
  """
382
384
  raise NotImplementedError
383
385
 
386
+ def __auto_fill_msg(self, msg: dict):
387
+ """填充消息,消息没有使用funboost来发送,并且没有extra相关字段时候"""
388
+ """ 一般消息至少包含这样
389
+ {
390
+ "a": 42,
391
+ "b": 84,
392
+ "extra": {
393
+ "task_id": "queue_2_result:9b79a372-f765-4a33-8639-9d15d7a95f61",
394
+ "publish_time": 1701687443.3596,
395
+ "publish_time_format": "2023-12-04 18:57:23"
396
+ }
397
+ }
398
+ """
399
+ """
400
+ extra_params = {'task_id': task_id, 'publish_time': round(time.time(), 4),
401
+ 'publish_time_format': time.strftime('%Y-%m-%d %H:%M:%S')}
402
+ """
403
+ if 'extra' not in msg:
404
+ msg['extra'] = {}
405
+ extra = msg['extra']
406
+ if 'task_id' not in extra:
407
+ extra['task_id'] = generate_task_id(self._queue_name)
408
+ if 'publish_time' not in extra:
409
+ extra['publish_time'] = round(time.time(), 4)
410
+ if 'publish_time_format':
411
+ extra['publish_time_format'] = time.strftime('%Y-%m-%d %H:%M:%S')
412
+
384
413
  def _submit_task(self, kw):
385
414
  while 1: # 这一块的代码为支持暂停消费。
386
415
  # print(self._pause_flag)
@@ -396,7 +425,7 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
396
425
  self._requeue(kw)
397
426
  time.sleep(self.time_interval_for_check_do_not_run_time)
398
427
  return
399
-
428
+ self.__auto_fill_msg(kw['body'])
400
429
  function_only_params = delete_keys_and_return_new_dict(kw['body'], )
401
430
  if self._get_priority_conf(kw, 'do_task_filtering') and self._redis_filter.check_value_exists(
402
431
  function_only_params): # 对函数的参数进行检查,过滤已经执行过并且成功的任务。
@@ -155,7 +155,9 @@ class Booster:
155
155
  file_volume_limit=1000 * 1000, sftp_log_level=20, extra_shell_str='',
156
156
  invoke_runner_kwargs={'hide': None, 'pty': True, 'warn': False},
157
157
  python_interpreter='python3',
158
- process_num=1):
158
+ process_num=1,
159
+ pkey_file_path=None,
160
+ ):
159
161
  """
160
162
  入参见 fabric_deploy 函数。这里重复入参是为了代码在pycharm补全提示。
161
163
  """
@@ -1,17 +1,12 @@
1
1
  # noinspection PyDefaultArgument
2
- import re
3
2
  import sys
4
3
  import threading
5
4
  import time
6
- import os
7
- import typing
8
5
  from pathlib import Path
9
6
  from fabric2 import Connection
10
7
  from nb_libs.path_helper import PathHelper
11
- # from funboost.core.booster import Booster
12
8
  from funboost.utils.paramiko_util import ParamikoFolderUploader
13
9
 
14
- # import nb_log
15
10
  from funboost.core.loggers import get_funboost_file_logger
16
11
  from funboost.core.booster import Booster
17
12
 
@@ -19,9 +14,6 @@ logger = get_funboost_file_logger(__name__)
19
14
 
20
15
 
21
16
  # noinspection PyDefaultArgument
22
-
23
-
24
-
25
17
  def fabric_deploy(booster: Booster, host, port, user, password,
26
18
  path_pattern_exluded_tuple=('/.git/', '/.idea/', '/dist/', '/build/'),
27
19
  file_suffix_tuple_exluded=('.pyc', '.log', '.gz'),
@@ -29,7 +21,9 @@ def fabric_deploy(booster: Booster, host, port, user, password,
29
21
  file_volume_limit=1000 * 1000, sftp_log_level=20, extra_shell_str='',
30
22
  invoke_runner_kwargs={'hide': None, 'pty': True, 'warn': False},
31
23
  python_interpreter='python3',
32
- process_num=1):
24
+ process_num=1,
25
+ pkey_file_path=None,
26
+ ):
33
27
  """
34
28
  不依赖阿里云codepipeline 和任何运维发布管理工具,只需要在python代码层面就能实现多机器远程部署。
35
29
  这实现了函数级别的精确部署,而非是部署一个 .py的代码,远程部署一个函数实现难度比远程部署一个脚本更高一点,部署更灵活。
@@ -65,6 +59,7 @@ def fabric_deploy(booster: Booster, host, port, user, password,
65
59
  pty 的意思是,远程机器的部署的代码进程是否随着当前脚本的结束而结束。如果为True,本机代码结束远程进程就会结束。如果为False,即使本机代码被关闭结束,远程机器还在运行代码。
66
60
  warn 的意思是如果远程机器控制台返回了异常码本机代码是否立即退出。warn为True这只是警告一下,warn为False,远程机器返回异常code码则本机代码直接终止退出。
67
61
  :param process_num:启动几个进程,要达到最大cpu性能就开启cpu核数个进程就可以了。每个进程内部都有任务函数本身指定的并发方式和并发数量,所以是多进程+线程/协程。
62
+ :param pkey_file_path: 私钥文件路径,如果设置了这个参数,则使用ssh私钥登录远程机器,如果没设置,则使用密码登录。
68
63
  :return:
69
64
 
70
65
 
@@ -80,7 +75,7 @@ def fabric_deploy(booster: Booster, host, port, user, password,
80
75
  func_name = booster.consuming_function.__name__
81
76
 
82
77
  """以下这种是为了兼容 函数没有@boost,而是使用 boosterxx = BoostersManager.build_booster() 来创建的booster. 下面的 python_exec_str 中需要用到 func_name
83
- 也可以远程时候使用 BoostersManager.get_booster(queue_name),然后启动消费. 因为import模块后,就能启动了.
78
+ 也可以远程时候使用 BoostersManager.get_booster(queue_name),然后启动消费. 因为import模块后,就注册booster信息到BoostersManager,所以能启动了.
84
79
  """
85
80
  module_obj = PathHelper(sys._getframe(2).f_code.co_filename).import_as_module() # noqa
86
81
  for var_name,var_value in module_obj.__dict__.items():
@@ -99,7 +94,7 @@ def fabric_deploy(booster: Booster, host, port, user, password,
99
94
  t_start = time.perf_counter()
100
95
  uploader = ParamikoFolderUploader(host, port, user, password, python_proj_dir, remote_dir,
101
96
  path_pattern_exluded_tuple, file_suffix_tuple_exluded,
102
- only_upload_within_the_last_modify_time, file_volume_limit, sftp_log_level)
97
+ only_upload_within_the_last_modify_time, file_volume_limit, sftp_log_level, pkey_file_path)
103
98
  uploader.upload()
104
99
  logger.info(f'上传 本地文件夹代码 {python_proj_dir} 上传到远程 {host} 的 {remote_dir} 文件夹耗时 {round(time.perf_counter() - t_start, 3)} 秒')
105
100
  # conn.run(f'''export PYTHONPATH={remote_dir}:$PYTHONPATH''')
@@ -81,6 +81,14 @@ class BaseJsonAbleModel(BaseModel):
81
81
  # allow_mutation = False
82
82
  extra = "forbid"
83
83
 
84
+ @staticmethod
85
+ def init_by_another_model(model_type: typing.Type[BaseModel], modelx: BaseModel):
86
+ init_dict = {}
87
+ for k, v in modelx.dict().items():
88
+ if k in model_type.__fields__.keys():
89
+ init_dict[k] = v
90
+ return model_type(**init_dict)
91
+
84
92
 
85
93
  class FunctionResultStatusPersistanceConfig(BaseJsonAbleModel):
86
94
  is_save_status: bool # 是否保存函数的运行状态信息
@@ -175,6 +183,8 @@ class BoosterParams(BaseJsonAbleModel):
175
183
  broker_exclusive_config: dict = {} # 加上一个不同种类中间件非通用的配置,不同中间件自身独有的配置,不是所有中间件都兼容的配置,因为框架支持30种消息队列,消息队列不仅仅是一般的先进先出queue这么简单的概念,
176
184
  # 例如kafka支持消费者组,rabbitmq也支持各种独特概念例如各种ack机制 复杂路由机制,有的中间件原生能支持消息优先级有的中间件不支持,每一种消息队列都有独特的配置参数意义,可以通过这里传递。每种中间件能传递的键值对可以看consumer类的 BROKER_EXCLUSIVE_CONFIG_DEFAULT
177
185
 
186
+ should_check_publish_func_params: bool = True # 消息发布时候是否校验消息发布内容,比如有的人发布消息,函数只接受a,b两个入参,他去传2个入参,或者传参不存在的参数名字, 如果消费函数你非要写*args,**kwargs,那就需要关掉发布消息时候的函数入参检查
187
+
178
188
  auto_generate_info: dict = {} # 自动生成的信息,不需要用户主动传参.
179
189
 
180
190
  @root_validator(skip_on_failure=True)
@@ -194,7 +204,7 @@ class BoosterParams(BaseJsonAbleModel):
194
204
  # if not set(values.keys()).issubset(set(BoosterParams.__fields__.keys())):
195
205
  # raise ValueError(f'{cls.__name__} 的字段包含了父类 BoosterParams 不存在的字段')
196
206
  for k in values.keys():
197
- if k not in BoosterParams.model_fields.keys():
207
+ if k not in BoosterParams.__fields__.keys():
198
208
  raise ValueError(f'{cls.__name__} 的字段新增了父类 BoosterParams 不存在的字段 "{k}"') # 使 BoosterParams的子类,不能增加字段,只能覆盖字段.
199
209
  return values
200
210
 
@@ -255,6 +265,7 @@ class PublisherParams(BaseJsonAbleModel):
255
265
  consuming_function: typing.Callable = None # consuming_function 作用是 inspect 模块获取函数的入参信息
256
266
  broker_kind: str = None
257
267
  broker_exclusive_config: dict = {}
268
+ should_check_publish_func_params: bool = True # 消息发布时候是否校验消息发布内容,比如有的人发布消息,函数只接受a,b两个入参,他去传2个入参,或者传参不存在的参数名字, 如果消费函数你非要写*args,**kwargs,那就需要关掉发布消息时候的函数入参检查
258
269
 
259
270
 
260
271
  if __name__ == '__main__':
@@ -1,5 +1,6 @@
1
1
  import copy
2
2
  import time
3
+ import uuid
3
4
 
4
5
 
5
6
  def get_publish_time(paramsx: dict):
@@ -42,4 +43,7 @@ def _try_get_user_funboost_common_config(funboost_common_conf_field:str):
42
43
  return getattr(funboost_config.FunboostCommonConfig,funboost_common_conf_field)
43
44
  except Exception as e:
44
45
  print(e)
45
- return None
46
+ return None
47
+
48
+ def generate_task_id(queue_name:str):
49
+ return f'{queue_name}_result:{uuid.uuid4()}'
@@ -79,6 +79,20 @@ class EventletImporter:
79
79
  self.patcher = patcher
80
80
  self.Timeout = Timeout
81
81
 
82
+ @singleton
83
+ class PeeweeImporter:
84
+ def __init__(self):
85
+ '''pip install peewee == 3.17'''
86
+ from peewee import ModelSelect, Model, BigAutoField, CharField, DateTimeField, MySQLDatabase
87
+ from playhouse.shortcuts import model_to_dict, dict_to_model
88
+ self.ModelSelect = ModelSelect
89
+ self.Model = Model
90
+ self.BigAutoField = BigAutoField
91
+ self.CharField = CharField
92
+ self.DateTimeField =DateTimeField
93
+ self.MySQLDatabase = MySQLDatabase
94
+ self.model_to_dict = model_to_dict
95
+ self.dict_to_model =dict_to_model
82
96
 
83
97
  if __name__ == '__main__':
84
98
  for i in range(10000):
@@ -19,6 +19,7 @@ import amqpstorm
19
19
 
20
20
  import nb_log
21
21
  from funboost.core.func_params_model import PublisherParams, PriorityConsumingControlConfig
22
+ from funboost.core.helper_funs import generate_task_id
22
23
  from funboost.core.loggers import develop_logger
23
24
 
24
25
  from pikav1.exceptions import AMQPError as PikaAMQPError
@@ -188,9 +189,9 @@ class AbstractPublisher(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
188
189
  if 'extra' in msg:
189
190
  msg_function_kw.pop('extra')
190
191
  raw_extra = msg['extra']
191
- if self.publish_params_checker:
192
+ if self.publish_params_checker and self.publisher_params.should_check_publish_func_params:
192
193
  self.publish_params_checker.check_params(msg_function_kw)
193
- task_id = task_id or f'{self._queue_name}_result:{uuid.uuid4()}'
194
+ task_id = task_id or generate_task_id(self._queue_name)
194
195
  extra_params = {'task_id': task_id, 'publish_time': round(time.time(), 4),
195
196
  'publish_time_format': time.strftime('%Y-%m-%d %H:%M:%S')}
196
197
  if priority_control_config:
@@ -1,14 +1,14 @@
1
1
  import datetime
2
2
  import time
3
-
4
- from peewee import ModelSelect
5
- from playhouse.shortcuts import model_to_dict, dict_to_model
3
+ #
4
+ # from peewee import ModelSelect, Model, BigAutoField, CharField, DateTimeField, MySQLDatabase
5
+ # from playhouse.shortcuts import model_to_dict, dict_to_model
6
6
 
7
7
  # from nb_log import LoggerMixin, LoggerLevelSetterMixin
8
8
  from funboost.core.loggers import LoggerLevelSetterMixin,FunboostFileLoggerMixin
9
9
  from funboost.funboost_config_deafult import BrokerConnConfig
10
- from peewee import *
11
-
10
+ # from peewee import *
11
+ from funboost.core.lazy_impoter import PeeweeImporter
12
12
 
13
13
 
14
14
  class TaskStatus:
@@ -30,13 +30,13 @@ class PeeweeQueue(FunboostFileLoggerMixin, LoggerLevelSetterMixin):
30
30
  self._create_table()
31
31
 
32
32
  def _create_table(self):
33
- class FunboostMessage(Model):
33
+ class FunboostMessage(PeeweeImporter().Model):
34
34
  """数据库的一行模拟一条消息"""
35
- job_id = BigAutoField(primary_key=True, )
36
- body = CharField(max_length=10240, null=False)
37
- publish_timestamp = DateTimeField(default=datetime.datetime.now)
38
- status = CharField(max_length=40, null=False)
39
- consume_start_timestamp = DateTimeField(default=None, null=True)
35
+ job_id = PeeweeImporter().BigAutoField(primary_key=True, )
36
+ body = PeeweeImporter().CharField(max_length=10240, null=False)
37
+ publish_timestamp = PeeweeImporter().DateTimeField(default=datetime.datetime.now)
38
+ status = PeeweeImporter().CharField(max_length=40, null=False)
39
+ consume_start_timestamp = PeeweeImporter().DateTimeField(default=None, null=True)
40
40
 
41
41
  class Meta:
42
42
  db_table = self.queue_name
@@ -47,7 +47,7 @@ class PeeweeQueue(FunboostFileLoggerMixin, LoggerLevelSetterMixin):
47
47
  passwd=BrokerConnConfig.MYSQL_PASSWORD,
48
48
  database=BrokerConnConfig.MYSQL_DATABASE,
49
49
  )
50
- database = MySQLDatabase(**conn_params)
50
+ database = PeeweeImporter().MySQLDatabase(**conn_params)
51
51
 
52
52
  FunboostMessage.create_table()
53
53
  self.FunboostMessage = FunboostMessage
@@ -68,7 +68,7 @@ class PeeweeQueue(FunboostFileLoggerMixin, LoggerLevelSetterMixin):
68
68
  # print(ret)
69
69
  if len(ret) == 1:
70
70
  row_obj = ret[0]
71
- row = model_to_dict(row_obj)
71
+ row = PeeweeImporter().model_to_dict(row_obj)
72
72
  self.FunboostMessage.update(status=TaskStatus.PENGDING, consume_start_timestamp=datetime.datetime.now()
73
73
  ).where(self.FunboostMessage.job_id == row['job_id']).execute()
74
74
  return row
@@ -16,7 +16,7 @@ class ParamikoFolderUploader(LoggerMixin, LoggerLevelSetterMixin):
16
16
  path_pattern_exluded_tuple=('/.git/', '/.idea/', '/dist/', '/build/'),
17
17
  file_suffix_tuple_exluded=('.pyc', '.log', '.gz'),
18
18
  only_upload_within_the_last_modify_time=3650 * 24 * 60 * 60,
19
- file_volume_limit=1000 * 1000, sftp_log_level=20):
19
+ file_volume_limit=1000 * 1000, sftp_log_level=20, pkey_file_path=None):
20
20
  """
21
21
 
22
22
  :param host:
@@ -30,6 +30,7 @@ class ParamikoFolderUploader(LoggerMixin, LoggerLevelSetterMixin):
30
30
  :param only_upload_within_the_last_modify_time: 仅仅上传最近多少天修改的文件
31
31
  :param file_volume_limit: 大于这个体积的不上传,单位b。
32
32
  :param sftp_log_level:日志级别
33
+ :param pkey_file_path: 私钥文件路径,如果设置了这个,那么使用私钥登录。
33
34
  """
34
35
  self._host = host
35
36
  self._port = port
@@ -48,7 +49,11 @@ class ParamikoFolderUploader(LoggerMixin, LoggerLevelSetterMixin):
48
49
  self._file_volume_limit = file_volume_limit
49
50
 
50
51
  t = paramiko.Transport((host, port))
51
- t.connect(username=user, password=password)
52
+ if pkey_file_path is not None and os.path.exists(pkey_file_path):
53
+ pkey = paramiko.RSAKey.from_private_key_file(open(pkey_file_path))
54
+ t.connect(username=user, pkey=pkey)
55
+ else:
56
+ t.connect(username=user, password=password)
52
57
  self.sftp = paramiko.SFTPClient.from_transport(t)
53
58
 
54
59
  ssh = paramiko.SSHClient()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: funboost
3
- Version: 43.7
3
+ Version: 43.9
4
4
  Summary: pip install funboost,python全功能分布式函数调度框架,。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚
5
5
  Home-page: https://github.com/ydf0509/funboost
6
6
  Author: bfzs
@@ -16,7 +16,6 @@ kafka-python==2.0.2
16
16
  requests
17
17
  gnsq==1.0.1
18
18
  psutil
19
- peewee==3.15.1
20
19
  apscheduler==3.10.1
21
20
  pikav0
22
21
  pikav1
@@ -85,7 +85,7 @@ setup(
85
85
  'psutil',
86
86
  # 'sqlalchemy==1.3.10',
87
87
  # 'sqlalchemy_utils==0.36.1', # 用户使用数据库作为消息队列时候,自行安装,不自动安装这个包。也可以使用kombu中间件的sqlalchemy模式来操作数据库或者peewee操作。
88
- 'peewee==3.15.1',
88
+ # 'peewee==3.17.3', # 'peewee==3.15.1', # 惰性安装
89
89
  'apscheduler==3.10.1',
90
90
  'pikav0',
91
91
  'pikav1',
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes