funboost 50.3__tar.gz → 50.4__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.
- {funboost-50.3 → funboost-50.4}/PKG-INFO +171 -15
- funboost-50.3/funboost.egg-info/PKG-INFO → funboost-50.4/README.md +56 -44
- {funboost-50.3 → funboost-50.4}/funboost/__init__.py +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/constant.py +4 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/base_consumer.py +93 -98
- {funboost-50.3 → funboost-50.4}/funboost/consumers/celery_consumer.py +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/consumers/dramatiq_consumer.py +0 -5
- {funboost-50.3 → funboost-50.4}/funboost/consumers/grpc_consumer.py +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/consumers/http_consumer.py +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/consumers/http_consumer_aiohttp_old.py +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/consumers/huey_consumer.py +2 -5
- {funboost-50.3 → funboost-50.4}/funboost/consumers/kafka_consumer.py +0 -2
- {funboost-50.3 → funboost-50.4}/funboost/consumers/kafka_consumer_manually_commit.py +0 -1
- {funboost-50.3 → funboost-50.4}/funboost/consumers/kombu_consumer.py +0 -39
- {funboost-50.3 → funboost-50.4}/funboost/consumers/mysql_cdc_consumer.py +1 -3
- {funboost-50.3 → funboost-50.4}/funboost/consumers/pulsar_consumer.py +10 -5
- {funboost-50.3 → funboost-50.4}/funboost/consumers/rabbitmq_amqpstorm_consumer.py +7 -8
- funboost-50.4/funboost/consumers/rabbitmq_complex_routing_consumer.py +54 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/redis_consumer.py +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/consumers/redis_consumer_ack_able.py +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/consumers/redis_consumer_ack_using_timeout.py +2 -6
- {funboost-50.3 → funboost-50.4}/funboost/consumers/redis_consumer_priority.py +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/consumers/redis_stream_consumer.py +1 -3
- {funboost-50.3 → funboost-50.4}/funboost/consumers/tcp_consumer.py +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/consumers/udp_consumer.py +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/consumers/zeromq_consumer.py +1 -1
- {funboost-50.3/funboost/contrib → funboost-50.4/funboost/contrib/save_function_result_status}/save_result_status_to_sqldb.py +8 -41
- funboost-50.4/funboost/contrib/save_function_result_status/save_result_status_use_dataset.py +47 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/booster.py +7 -1
- funboost-50.4/funboost/core/broker_kind__exclusive_config_default_define.py +229 -0
- funboost-50.4/funboost/core/funboost_time.py +51 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/func_params_model.py +9 -3
- {funboost-50.3 → funboost-50.4}/funboost/core/helper_funs.py +2 -2
- {funboost-50.3 → funboost-50.4}/funboost/factories/broker_kind__publsiher_consumer_type_map.py +5 -0
- {funboost-50.3 → funboost-50.4}/funboost/funboost_config_deafult.py +0 -3
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/templates/fun_result_table.html +1 -1
- {funboost-50.3 → funboost-50.4}/funboost/publishers/base_publisher.py +3 -2
- {funboost-50.3 → funboost-50.4}/funboost/publishers/rabbitmq_amqpstorm_publisher.py +8 -7
- funboost-50.4/funboost/publishers/rabbitmq_complex_routing_publisher.py +84 -0
- funboost-50.4/funboost/utils/func_timeout/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/redis_manager.py +11 -5
- funboost-50.3/README.md → funboost-50.4/funboost.egg-info/PKG-INFO +200 -9
- {funboost-50.3 → funboost-50.4}/funboost.egg-info/SOURCES.txt +6 -2
- {funboost-50.3 → funboost-50.4}/funboost.egg-info/requires.txt +1 -1
- {funboost-50.3 → funboost-50.4}/setup.py +4 -3
- funboost-50.3/LICENSE +0 -203
- funboost-50.3/funboost/core/funboost_time.py +0 -130
- {funboost-50.3 → funboost-50.4}/MANIFEST.in +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/__init__old.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/__main__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/assist/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/assist/celery_helper.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/assist/dramatiq_helper.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/assist/faststream_helper.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/assist/huey_helper.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/assist/rocketry_helper.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/assist/rq_helper.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/assist/rq_windows_worker.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/assist/taskiq_helper.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/beggar_version_implementation/beggar_redis_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/async_helper.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/async_pool_executor.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/backup/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/backup/async_pool_executor0223.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/backup/async_pool_executor_back.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/backup/async_pool_executor_janus.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/backup/grok_async_pool.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/base_pool_type.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/bounded_processpoolexcutor_py36.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/bounded_threadpoolexcutor.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/custom_evenlet_pool_executor.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/custom_gevent_pool_executor.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/custom_threadpool_executor.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/custom_threadpool_executor000.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/fixed_thread_pool.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/flexible_thread_pool.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/pool_commons.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/concurrent_pool/single_thread_executor.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/confirm_mixin.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/empty_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/faststream_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/http_consumer000.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/httpsqs_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/local_python_queue_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/memory_deque_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/mongomq_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/mqtt_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/nameko_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/nats_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/nsq_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/peewee_conusmer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/persist_queue_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/rabbitmq_pika_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/rabbitmq_pika_consumerv0.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/rabbitmq_rabbitpy_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/redis_brpoplpush_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/redis_consumer_simple.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/redis_filter.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/redis_pubsub_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/rocketmq_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/rq_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/sqlachemy_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/consumers/txt_file_consumer.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/contrib/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/contrib/api_publish_msg.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/contrib/cdc/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/contrib/cdc/mysql2mysql.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/contrib/django_db_deco.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/contrib/queue2queue.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/contrib/redis_consume_latest_msg_broker.py +0 -0
- {funboost-50.3/funboost/core → funboost-50.4/funboost/contrib/save_function_result_status}/__init__.py +0 -0
- {funboost-50.3/funboost/core/cli → funboost-50.4/funboost/core}/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/active_cousumer_info_getter.py +0 -0
- {funboost-50.3/funboost/queues → funboost-50.4/funboost/core/cli}/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/cli/discovery_boosters.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/cli/funboost_cli_user_templ.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/cli/funboost_fire.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/current_task.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/exceptions.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/fabric_deploy_helper.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/funboost_config_getter.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/function_result_status_config.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/function_result_status_saver.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/kill_remote_task.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/lazy_impoter.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/loggers.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/msg_result_getter.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/muliti_process_enhance.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/serialization.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/core/task_id_logger.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/factories/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/factories/consumer_factory.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/factories/publisher_factotry.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/__pycache__/app.cpython-313.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/__pycache__/app.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/__pycache__/functions.cpython-313.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/__pycache__/functions.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/__pycache__/functions.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/app.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/app_debug_start.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/functions.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/assets/css/custom.css +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/assets/css/jquery.mCustomScrollbar.min.css +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/assets/img/user.jpg +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/assets/js/custom.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/assets/js/jquery.mCustomScrollbar.concat.min.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css/content_page_style.css +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css/style.css +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/font-awesome/4.7.0/css/font-awesome.min.css +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/font-awesome/4.7.0/fonts/FontAwesome.otf +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/font-awesome/4.7.0/fonts/fontawesome-webfont.eot +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/font-awesome/4.7.0/fonts/fontawesome-webfont.svg +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/font-awesome/4.7.0/fonts/fontawesome-webfont.ttf +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/font-awesome/4.7.0/fonts/fontawesome-webfont.woff +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/font-awesome/4.7.0/fonts/fontawesome-webfont.woff2 +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/select2/4.0.13/css/select2.min.css +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/tabulator-tables@5.5.0/tabulator.min.css +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/tabulator-tables@5.5.0/tabulator_bootstrap3.min.css +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/twitter-bootstrap/3.3.7/css/bootstrap.min.css +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/twitter-bootstrap/3.3.7/fonts/glyphicons-halflings-regular.eot +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/twitter-bootstrap/3.3.7/fonts/glyphicons-halflings-regular.svg +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/twitter-bootstrap/3.3.7/fonts/glyphicons-halflings-regular.ttf +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/twitter-bootstrap/3.3.7/fonts/glyphicons-halflings-regular.woff +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/css_cdn/twitter-bootstrap/3.3.7/fonts/glyphicons-halflings-regular.woff2 +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/images/bg.jpg +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/images/favicon.ico +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/images/password.png +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/images/tick.png +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/images/user.png +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/js/bootstrap-datetimepicker.min.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/js/echarts.min.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/js/form-memory.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/js/jquery-1.11.0.min.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/js/moment-with-locales.min.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/js/select2.min.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/js_cdn/bootstrap/3.3.7/js/bootstrap.min.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/js_cdn/chart.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/static/js_cdn/tabulator-tables@5.5.0/dist/js/tabulator.min.js +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/templates/about.html +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/templates/conusme_speed.html +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/templates/index.html +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/templates/index_backup.html +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/templates/login.html +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/templates/queue_op.html +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/templates/rpc_call.html +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/templates/running_consumer_by_ip.html +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/function_result_web/templates/running_consumer_by_queue_name.html +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/celery_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/celery_publisher000.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/confluent_kafka_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/dramatiq_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/empty_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/faststream_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/grpc_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/http_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/httpsqs_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/huey_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/kafka_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/kombu_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/local_python_queue_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/meomory_deque_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/mongomq_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/mqtt_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/mysql_cdc_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/nameko_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/nats_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/nsq_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/peewee_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/persist_queue_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/pulsar_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/rabbitmq_pika_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/rabbitmq_rabbitpy_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/redis_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/redis_publisher_lpush.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/redis_publisher_priority.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/redis_publisher_simple.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/redis_pubsub_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/redis_queue_flush_mixin.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/redis_stream_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/rocketmq_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/rq_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/sqla_queue_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/tcp_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/txt_file_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/udp_publisher.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/publishers/zeromq_publisher.py +0 -0
- {funboost-50.3/funboost/utils/dependency_packages → funboost-50.4/funboost/queues}/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/queues/memory_queues_map.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/queues/peewee_queue.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/queues/sqla_queue.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/set_frame_config.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/timing_job/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/timing_job/apscheduler_use_mysql_store.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/timing_job/apscheduler_use_redis_store.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/timing_job/timing_job_base.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/timing_job/timing_push.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/apscheduler_monkey.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/block_exit.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/bulk_operation.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/class_utils.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/ctrl_c_end.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/decorators.py +0 -0
- {funboost-50.3/funboost/utils/dependency_packages_in_pythonpath → funboost-50.4/funboost/utils/dependency_packages}/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages/mongomq/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages/mongomq/lock.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages/mongomq/mongomq.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages/mongomq/mongomq0000.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages/mongomq/test.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages/mongomq/utils.py +0 -0
- {funboost-50.3/funboost/utils/func_timeout → funboost-50.4/funboost/utils/dependency_packages_in_pythonpath}/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-313.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-313.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/client.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/compat.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/connection.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/StoppableThread.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__init__.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-311.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-37.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-39.pyc +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc2222.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/exceptions.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py2_raise.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py3_raise.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/develop_log.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/expire_lock.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/func_timeout/StoppableThread.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/func_timeout/dafunc.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/func_timeout/exceptions.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/func_timeout/py2_raise.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/func_timeout/py3_raise.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/json_helper.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/mongo_util.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/monkey_color_log.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/monkey_patches.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/mqtt_util.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/paramiko_util.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/rabbitmq_factory.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/redis_manager_old.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/resource_monitoring.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/restart_python.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/simple_data_class.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/str_utils.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/time_util.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost/utils/un_strict_json_dumps.py +0 -0
- {funboost-50.3 → funboost-50.4}/funboost.egg-info/dependency_links.txt +0 -0
- {funboost-50.3 → funboost-50.4}/funboost.egg-info/entry_points.txt +0 -0
- {funboost-50.3 → funboost-50.4}/funboost.egg-info/top_level.txt +0 -0
- {funboost-50.3 → funboost-50.4}/setup.cfg +0 -0
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 50.
|
|
3
|
+
Version: 50.4
|
|
4
4
|
Summary: pip install funboost,python全功能分布式函数调度框架,funboost的功能是全面性重量级,用户能想得到的功能99%全都有;funboost的使用方式是轻量级,只有@boost一行代码需要写。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,funboost web manager 方便查看和管理消费函数;99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚
|
|
5
5
|
Home-page: https://github.com/ydf0509/funboost
|
|
6
6
|
Author: bfzs
|
|
7
7
|
Author-email: ydf0509@sohu.com
|
|
8
8
|
Maintainer: ydf
|
|
9
9
|
Maintainer-email: ydf0509@sohu.com
|
|
10
|
-
License: BSD
|
|
10
|
+
License: BSD-3-Clause
|
|
11
11
|
Keywords: funboost,distributed-framework,function-scheduling,rabbitmq,rocketmq,kafka,nsq,redis,disk,sqlachemy,consume-confirm,timing,task-scheduling,apscheduler,pulsar,mqtt,kombu,的,celery,框架,分布式调度
|
|
12
12
|
Platform: all
|
|
13
13
|
Classifier: Development Status :: 4 - Beta
|
|
14
14
|
Classifier: Operating System :: OS Independent
|
|
15
15
|
Classifier: Intended Audience :: Developers
|
|
16
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
17
16
|
Classifier: Programming Language :: Python
|
|
18
17
|
Classifier: Programming Language :: Python :: Implementation
|
|
19
18
|
Classifier: Programming Language :: Python :: 3
|
|
@@ -28,16 +27,142 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
28
27
|
Classifier: Programming Language :: Python :: 3 :: Only
|
|
29
28
|
Classifier: Topic :: Software Development :: Libraries
|
|
30
29
|
Description-Content-Type: text/markdown
|
|
30
|
+
Requires-Dist: nb_log>=13.9
|
|
31
|
+
Requires-Dist: nb_libs>=1.9
|
|
32
|
+
Requires-Dist: nb_time>=2.7
|
|
33
|
+
Requires-Dist: pymongo>=4.6.3
|
|
34
|
+
Requires-Dist: AMQPStorm==2.10.6
|
|
35
|
+
Requires-Dist: rabbitpy==2.0.1
|
|
36
|
+
Requires-Dist: decorator==5.1.1
|
|
37
|
+
Requires-Dist: tomorrow3==1.1.0
|
|
38
|
+
Requires-Dist: persist-queue>=0.4.2
|
|
39
|
+
Requires-Dist: apscheduler<4.0.0,>=3.10.1
|
|
40
|
+
Requires-Dist: pikav0
|
|
41
|
+
Requires-Dist: pikav1
|
|
42
|
+
Requires-Dist: redis2
|
|
43
|
+
Requires-Dist: redis3
|
|
44
|
+
Requires-Dist: redis5
|
|
45
|
+
Requires-Dist: redis
|
|
46
|
+
Requires-Dist: setuptools_rust
|
|
47
|
+
Requires-Dist: fabric2>=2.6.0
|
|
48
|
+
Requires-Dist: nb_filelock
|
|
49
|
+
Requires-Dist: pysnooper
|
|
50
|
+
Requires-Dist: deprecated
|
|
51
|
+
Requires-Dist: cryptography
|
|
52
|
+
Requires-Dist: auto_run_on_remote
|
|
53
|
+
Requires-Dist: frozenlist
|
|
54
|
+
Requires-Dist: fire
|
|
55
|
+
Requires-Dist: pydantic
|
|
56
|
+
Requires-Dist: orjson
|
|
57
|
+
Requires-Dist: async-timeout
|
|
58
|
+
Requires-Dist: typing-extensions
|
|
31
59
|
Provides-Extra: all
|
|
32
|
-
|
|
60
|
+
Requires-Dist: confluent_kafka==1.7.0; extra == "all"
|
|
61
|
+
Requires-Dist: pulsar-client==3.1.0; python_version >= "3.7" and extra == "all"
|
|
62
|
+
Requires-Dist: celery; extra == "all"
|
|
63
|
+
Requires-Dist: flower; extra == "all"
|
|
64
|
+
Requires-Dist: nameko==2.14.1; extra == "all"
|
|
65
|
+
Requires-Dist: sqlalchemy==1.4.13; extra == "all"
|
|
66
|
+
Requires-Dist: sqlalchemy_utils==0.36.1; extra == "all"
|
|
67
|
+
Requires-Dist: dramatiq==1.14.2; extra == "all"
|
|
68
|
+
Requires-Dist: huey==2.4.5; extra == "all"
|
|
69
|
+
Requires-Dist: rq==1.15.0; extra == "all"
|
|
70
|
+
Requires-Dist: kombu; extra == "all"
|
|
71
|
+
Requires-Dist: elasticsearch; extra == "all"
|
|
72
|
+
Requires-Dist: gnsq==1.0.1; extra == "all"
|
|
73
|
+
Requires-Dist: psutil; extra == "all"
|
|
74
|
+
Requires-Dist: peewee==3.17.3; extra == "all"
|
|
75
|
+
Requires-Dist: nats-python; extra == "all"
|
|
76
|
+
Requires-Dist: aiohttp==3.8.3; extra == "all"
|
|
77
|
+
Requires-Dist: paho-mqtt; extra == "all"
|
|
78
|
+
Requires-Dist: rocketmq; extra == "all"
|
|
79
|
+
Requires-Dist: zmq; extra == "all"
|
|
80
|
+
Requires-Dist: pyzmq; extra == "all"
|
|
81
|
+
Requires-Dist: kafka-python==2.0.2; extra == "all"
|
|
82
|
+
Requires-Dist: eventlet==0.33.3; extra == "all"
|
|
83
|
+
Requires-Dist: gevent==22.10.2; extra == "all"
|
|
84
|
+
Requires-Dist: mysql-replication==1.0.9; extra == "all"
|
|
85
|
+
Requires-Dist: grpcio==1.60.0; extra == "all"
|
|
86
|
+
Requires-Dist: grpcio-tools==1.60.0; extra == "all"
|
|
87
|
+
Requires-Dist: protobuf==4.25.1; extra == "all"
|
|
88
|
+
Requires-Dist: waitress; extra == "all"
|
|
89
|
+
Requires-Dist: flask; extra == "all"
|
|
90
|
+
Requires-Dist: flask_bootstrap; extra == "all"
|
|
91
|
+
Requires-Dist: flask_wtf; extra == "all"
|
|
92
|
+
Requires-Dist: wtforms; extra == "all"
|
|
93
|
+
Requires-Dist: flask_login; extra == "all"
|
|
94
|
+
Provides-Extra: extra-brokers
|
|
95
|
+
Requires-Dist: confluent_kafka==1.7.0; extra == "extra-brokers"
|
|
96
|
+
Requires-Dist: pulsar-client==3.1.0; python_version >= "3.7" and extra == "extra-brokers"
|
|
97
|
+
Requires-Dist: celery; extra == "extra-brokers"
|
|
98
|
+
Requires-Dist: flower; extra == "extra-brokers"
|
|
99
|
+
Requires-Dist: nameko==2.14.1; extra == "extra-brokers"
|
|
100
|
+
Requires-Dist: sqlalchemy==1.4.13; extra == "extra-brokers"
|
|
101
|
+
Requires-Dist: sqlalchemy_utils==0.36.1; extra == "extra-brokers"
|
|
102
|
+
Requires-Dist: dramatiq==1.14.2; extra == "extra-brokers"
|
|
103
|
+
Requires-Dist: huey==2.4.5; extra == "extra-brokers"
|
|
104
|
+
Requires-Dist: rq==1.15.0; extra == "extra-brokers"
|
|
105
|
+
Requires-Dist: kombu; extra == "extra-brokers"
|
|
106
|
+
Requires-Dist: elasticsearch; extra == "extra-brokers"
|
|
107
|
+
Requires-Dist: gnsq==1.0.1; extra == "extra-brokers"
|
|
108
|
+
Requires-Dist: psutil; extra == "extra-brokers"
|
|
109
|
+
Requires-Dist: peewee==3.17.3; extra == "extra-brokers"
|
|
110
|
+
Requires-Dist: nats-python; extra == "extra-brokers"
|
|
111
|
+
Requires-Dist: aiohttp==3.8.3; extra == "extra-brokers"
|
|
112
|
+
Requires-Dist: paho-mqtt; extra == "extra-brokers"
|
|
113
|
+
Requires-Dist: rocketmq; extra == "extra-brokers"
|
|
114
|
+
Requires-Dist: zmq; extra == "extra-brokers"
|
|
115
|
+
Requires-Dist: pyzmq; extra == "extra-brokers"
|
|
116
|
+
Requires-Dist: kafka-python==2.0.2; extra == "extra-brokers"
|
|
117
|
+
Requires-Dist: eventlet==0.33.3; extra == "extra-brokers"
|
|
118
|
+
Requires-Dist: gevent==22.10.2; extra == "extra-brokers"
|
|
119
|
+
Requires-Dist: mysql-replication==1.0.9; extra == "extra-brokers"
|
|
120
|
+
Requires-Dist: grpcio==1.60.0; extra == "extra-brokers"
|
|
121
|
+
Requires-Dist: grpcio-tools==1.60.0; extra == "extra-brokers"
|
|
122
|
+
Requires-Dist: protobuf==4.25.1; extra == "extra-brokers"
|
|
123
|
+
Requires-Dist: waitress; extra == "extra-brokers"
|
|
33
124
|
Provides-Extra: flask
|
|
34
|
-
|
|
125
|
+
Requires-Dist: flask; extra == "flask"
|
|
126
|
+
Requires-Dist: flask_bootstrap; extra == "flask"
|
|
127
|
+
Requires-Dist: flask_wtf; extra == "flask"
|
|
128
|
+
Requires-Dist: wtforms; extra == "flask"
|
|
129
|
+
Requires-Dist: flask_login; extra == "flask"
|
|
130
|
+
Dynamic: author
|
|
131
|
+
Dynamic: author-email
|
|
132
|
+
Dynamic: classifier
|
|
133
|
+
Dynamic: description
|
|
134
|
+
Dynamic: description-content-type
|
|
135
|
+
Dynamic: home-page
|
|
136
|
+
Dynamic: keywords
|
|
137
|
+
Dynamic: license
|
|
138
|
+
Dynamic: maintainer
|
|
139
|
+
Dynamic: maintainer-email
|
|
140
|
+
Dynamic: platform
|
|
141
|
+
Dynamic: provides-extra
|
|
142
|
+
Dynamic: requires-dist
|
|
143
|
+
Dynamic: summary
|
|
35
144
|
|
|
36
145
|
# 1.python万能分布式函数调度框架简funboost简介
|
|
37
146
|
|
|
147
|
+
funboost教程: [https://funboost.readthedocs.io/zh-cn/latest/index.html](https://funboost.readthedocs.io/zh-cn/latest/index.html)
|
|
148
|
+
|
|
38
149
|
## 1.0 funboost 框架说明介绍
|
|
39
150
|
|
|
40
|
-
`funboost`是一个
|
|
151
|
+
`funboost`是一个 万能 强大 简单 自由 的 `python` 全功能分布式调度框架,它的作用是给用户任意项目的任意函数赋能.
|
|
152
|
+
|
|
153
|
+
|
|
154
|
+
<h4>📹 观看 funboost 视频</h4>
|
|
155
|
+
<video controls width="800"
|
|
156
|
+
src="https://ydf0509.github.io/funboost_git_pages/%E8%A7%86%E9%A2%91-Funboost_%E8%A7%86%E9%A2%91.mp4">
|
|
157
|
+
您的浏览器不支持视频播放。
|
|
158
|
+
</video>
|
|
159
|
+
|
|
160
|
+
<h4>🎧 收听 funboost 音频</h4>
|
|
161
|
+
<audio controls
|
|
162
|
+
src="https://ydf0509.github.io/funboost_git_pages/%E9%9F%B3%E9%A2%91-funboost_%E9%9F%B3%E9%A2%91.mp4">
|
|
163
|
+
您的浏览器不支持音频播放。
|
|
164
|
+
</audio>
|
|
165
|
+
|
|
41
166
|
|
|
42
167
|
### 1.0.0 funboost 框架安装方式
|
|
43
168
|
|
|
@@ -59,6 +184,36 @@ pip install funboost --upgrade
|
|
|
59
184
|
它证明了一个框架可以既功能丰富又极其易用,这是对传统Python框架设计的一次巧妙超越。
|
|
60
185
|
只需要一行`@boost`代码即可分布式执行`python`一切任意函数,99%用过`funboost`的`pythoner` 感受是 方便 高速 强大 自由。
|
|
61
186
|
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
#### funboost的适用场景:
|
|
190
|
+
```
|
|
191
|
+
`funboost`是python函数加速器,框架包罗万象,一统编程思维,兼容50% `python`编程业务场景,适用范围广,任何新老项目都能用到。
|
|
192
|
+
`funboost` 用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
需要分布式? 好,funboost支持40多种消息队列,任何只要是稍微小有名气的消息队列和甚至任务框架,funboost全都支持.
|
|
197
|
+
需要并发? 好,那就把Python所有的并发模式(线程、协程、多进程)都给你,并且让它们可以叠加。
|
|
198
|
+
需要可靠性? 好,那就把消费确认(ACK)、自动重试、死信队列(DLQ)、断点续爬做到极致,让你无惧任何宕机。
|
|
199
|
+
需要控制力? 好,那就给你精准的QPS控频、分布式控频、定时任务、延时任务、超时杀死、任务过滤等三十多种控制武器。
|
|
200
|
+
需要监控? 好,那就给你一个开箱即用的Web UI,让你对任务状态、队列情况、消费者实例了如指掌。
|
|
201
|
+
需要自由? 好,那就让你用最普通的Python函数,不侵入你的代码,不规定你的项目结构,让你随时能用,随时能走。
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
#### 有人问 funboost 是做什么的? 怎么回答最合适?
|
|
205
|
+
|
|
206
|
+
这个问题很难精确的一句话概括回答,因为funboost是万能框架,几乎所有的python编程业务场景都能用到,答案是发散的不是唯一的。
|
|
207
|
+
|
|
208
|
+
发散的答案, 见文档 6.0b 章节 [https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#b-funboost](https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#b-funboost)
|
|
209
|
+
|
|
210
|
+
|
|
211
|
+
#### 最最最重要的第一个问题: "funboost这个框架怎么样呀,值得我学习使用吗?"
|
|
212
|
+
|
|
213
|
+
如果选择学习使用了一个 用途狭窄 功能不好 性能不好 用法复杂 写法不自由 的框架,简直是浪费时间浪费生命.
|
|
214
|
+
|
|
215
|
+
问题答案, 见文档 6.0 章节 [https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#funboost](https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#funboost)
|
|
216
|
+
|
|
62
217
|
#### funboost与celery的理念区别
|
|
63
218
|
**共同点:**
|
|
64
219
|
```
|
|
@@ -69,11 +224,15 @@ pip install funboost --upgrade
|
|
|
69
224
|
|
|
70
225
|
**区别:**
|
|
71
226
|
```
|
|
72
|
-
`celery`是`围绕celery框架组织代码,属于重型奴役框架`,你围绕`celery`项目结构和`celery app`这样中央app实例 转,去新增定义`@app.task`函数,
|
|
73
|
-
|
|
227
|
+
`celery`是`围绕celery框架组织代码,属于重型奴役框架`,你围绕`celery`项目结构和`celery app`这样中央app实例 转,去新增定义`@app.task`函数,
|
|
228
|
+
app才是一等公民,task函数是二等公民
|
|
229
|
+
|
|
230
|
+
`funboost`是`函数增强器,属于轻型自由框架`,你可以对任意项目任意位置的新旧函数加上`@boost`装饰器,是给你函数赋能插上强大翅膀,
|
|
231
|
+
用户不需要围绕`funboost`或某个中央app实例来组织代码结构,用户函数自身就是一等公民
|
|
74
232
|
|
|
75
233
|
2个框架最显而易见明显差别就是 `funboost` 无需 `@app.boost` 而是直接`@boost`,这个小区别,造成影响深远的框架用法和理念区别.
|
|
76
|
-
`funboost`任务控制功能更多,支持broker中间件种类更多,并发方式更多,发布性能超越celery 22倍,消费性能超越 celery 46
|
|
234
|
+
`funboost`任务控制功能更多,支持broker中间件种类更多,并发方式更多,发布性能超越celery 22倍,消费性能超越 celery 46倍,
|
|
235
|
+
性能是高几个数量级的断崖式遥遥领先,但反而使用比celery简单得多.
|
|
77
236
|
```
|
|
78
237
|
|
|
79
238
|
#### **funboost 支持的并发模式:**
|
|
@@ -88,11 +247,8 @@ pip install funboost --upgrade
|
|
|
88
247
|
并且`funboost` 将 `mysql cdc` 这种`mysql binlog`变化捕获作为`broker`,使得`funboost`可以是事件驱动的,远超`celery`的理念.
|
|
89
248
|
`funboost` 还轻松内置了将各种三方消费框架作为`broker`,例如直接将 `celery` `dramatiq` `huey` `rq` `nameko` 作为`broker`,使用这些框架的核心来执行用户的函数
|
|
90
249
|
```
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
`funboost`是python函数加速器,框架包罗万象,一统编程思维,兼容50% `python`编程业务场景,适用范围广,任何新老项目都能用到。
|
|
94
|
-
`funboost` 用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
|
|
95
|
-
```
|
|
250
|
+
|
|
251
|
+
|
|
96
252
|
|
|
97
253
|
|
|
98
254
|
#### **funboost 学习难吗?**
|
|
@@ -1,43 +1,24 @@
|
|
|
1
|
-
Metadata-Version: 2.1
|
|
2
|
-
Name: funboost
|
|
3
|
-
Version: 50.3
|
|
4
|
-
Summary: pip install funboost,python全功能分布式函数调度框架,funboost的功能是全面性重量级,用户能想得到的功能99%全都有;funboost的使用方式是轻量级,只有@boost一行代码需要写。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,funboost web manager 方便查看和管理消费函数;99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚
|
|
5
|
-
Home-page: https://github.com/ydf0509/funboost
|
|
6
|
-
Author: bfzs
|
|
7
|
-
Author-email: ydf0509@sohu.com
|
|
8
|
-
Maintainer: ydf
|
|
9
|
-
Maintainer-email: ydf0509@sohu.com
|
|
10
|
-
License: BSD License
|
|
11
|
-
Keywords: funboost,distributed-framework,function-scheduling,rabbitmq,rocketmq,kafka,nsq,redis,disk,sqlachemy,consume-confirm,timing,task-scheduling,apscheduler,pulsar,mqtt,kombu,的,celery,框架,分布式调度
|
|
12
|
-
Platform: all
|
|
13
|
-
Classifier: Development Status :: 4 - Beta
|
|
14
|
-
Classifier: Operating System :: OS Independent
|
|
15
|
-
Classifier: Intended Audience :: Developers
|
|
16
|
-
Classifier: License :: OSI Approved :: BSD License
|
|
17
|
-
Classifier: Programming Language :: Python
|
|
18
|
-
Classifier: Programming Language :: Python :: Implementation
|
|
19
|
-
Classifier: Programming Language :: Python :: 3
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.7
|
|
21
|
-
Classifier: Programming Language :: Python :: 3.8
|
|
22
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
23
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
24
|
-
Classifier: Programming Language :: Python :: 3.11
|
|
25
|
-
Classifier: Programming Language :: Python :: 3.12
|
|
26
|
-
Classifier: Programming Language :: Python :: 3.13
|
|
27
|
-
Classifier: Programming Language :: Python :: 3.14
|
|
28
|
-
Classifier: Programming Language :: Python :: 3 :: Only
|
|
29
|
-
Classifier: Topic :: Software Development :: Libraries
|
|
30
|
-
Description-Content-Type: text/markdown
|
|
31
|
-
Provides-Extra: all
|
|
32
|
-
Provides-Extra: extra_brokers
|
|
33
|
-
Provides-Extra: flask
|
|
34
|
-
License-File: LICENSE
|
|
35
|
-
|
|
36
1
|
# 1.python万能分布式函数调度框架简funboost简介
|
|
37
2
|
|
|
3
|
+
funboost教程: [https://funboost.readthedocs.io/zh-cn/latest/index.html](https://funboost.readthedocs.io/zh-cn/latest/index.html)
|
|
4
|
+
|
|
38
5
|
## 1.0 funboost 框架说明介绍
|
|
39
6
|
|
|
40
|
-
`funboost`是一个
|
|
7
|
+
`funboost`是一个 万能 强大 简单 自由 的 `python` 全功能分布式调度框架,它的作用是给用户任意项目的任意函数赋能.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
<h4>📹 观看 funboost 视频</h4>
|
|
11
|
+
<video controls width="800"
|
|
12
|
+
src="https://ydf0509.github.io/funboost_git_pages/%E8%A7%86%E9%A2%91-Funboost_%E8%A7%86%E9%A2%91.mp4">
|
|
13
|
+
您的浏览器不支持视频播放。
|
|
14
|
+
</video>
|
|
15
|
+
|
|
16
|
+
<h4>🎧 收听 funboost 音频</h4>
|
|
17
|
+
<audio controls
|
|
18
|
+
src="https://ydf0509.github.io/funboost_git_pages/%E9%9F%B3%E9%A2%91-funboost_%E9%9F%B3%E9%A2%91.mp4">
|
|
19
|
+
您的浏览器不支持音频播放。
|
|
20
|
+
</audio>
|
|
21
|
+
|
|
41
22
|
|
|
42
23
|
### 1.0.0 funboost 框架安装方式
|
|
43
24
|
|
|
@@ -59,6 +40,36 @@ pip install funboost --upgrade
|
|
|
59
40
|
它证明了一个框架可以既功能丰富又极其易用,这是对传统Python框架设计的一次巧妙超越。
|
|
60
41
|
只需要一行`@boost`代码即可分布式执行`python`一切任意函数,99%用过`funboost`的`pythoner` 感受是 方便 高速 强大 自由。
|
|
61
42
|
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
#### funboost的适用场景:
|
|
46
|
+
```
|
|
47
|
+
`funboost`是python函数加速器,框架包罗万象,一统编程思维,兼容50% `python`编程业务场景,适用范围广,任何新老项目都能用到。
|
|
48
|
+
`funboost` 用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
需要分布式? 好,funboost支持40多种消息队列,任何只要是稍微小有名气的消息队列和甚至任务框架,funboost全都支持.
|
|
53
|
+
需要并发? 好,那就把Python所有的并发模式(线程、协程、多进程)都给你,并且让它们可以叠加。
|
|
54
|
+
需要可靠性? 好,那就把消费确认(ACK)、自动重试、死信队列(DLQ)、断点续爬做到极致,让你无惧任何宕机。
|
|
55
|
+
需要控制力? 好,那就给你精准的QPS控频、分布式控频、定时任务、延时任务、超时杀死、任务过滤等三十多种控制武器。
|
|
56
|
+
需要监控? 好,那就给你一个开箱即用的Web UI,让你对任务状态、队列情况、消费者实例了如指掌。
|
|
57
|
+
需要自由? 好,那就让你用最普通的Python函数,不侵入你的代码,不规定你的项目结构,让你随时能用,随时能走。
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
#### 有人问 funboost 是做什么的? 怎么回答最合适?
|
|
61
|
+
|
|
62
|
+
这个问题很难精确的一句话概括回答,因为funboost是万能框架,几乎所有的python编程业务场景都能用到,答案是发散的不是唯一的。
|
|
63
|
+
|
|
64
|
+
发散的答案, 见文档 6.0b 章节 [https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#b-funboost](https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#b-funboost)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
#### 最最最重要的第一个问题: "funboost这个框架怎么样呀,值得我学习使用吗?"
|
|
68
|
+
|
|
69
|
+
如果选择学习使用了一个 用途狭窄 功能不好 性能不好 用法复杂 写法不自由 的框架,简直是浪费时间浪费生命.
|
|
70
|
+
|
|
71
|
+
问题答案, 见文档 6.0 章节 [https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#funboost](https://funboost.readthedocs.io/zh-cn/latest/articles/c6.html#funboost)
|
|
72
|
+
|
|
62
73
|
#### funboost与celery的理念区别
|
|
63
74
|
**共同点:**
|
|
64
75
|
```
|
|
@@ -69,11 +80,15 @@ pip install funboost --upgrade
|
|
|
69
80
|
|
|
70
81
|
**区别:**
|
|
71
82
|
```
|
|
72
|
-
`celery`是`围绕celery框架组织代码,属于重型奴役框架`,你围绕`celery`项目结构和`celery app`这样中央app实例 转,去新增定义`@app.task`函数,
|
|
73
|
-
|
|
83
|
+
`celery`是`围绕celery框架组织代码,属于重型奴役框架`,你围绕`celery`项目结构和`celery app`这样中央app实例 转,去新增定义`@app.task`函数,
|
|
84
|
+
app才是一等公民,task函数是二等公民
|
|
85
|
+
|
|
86
|
+
`funboost`是`函数增强器,属于轻型自由框架`,你可以对任意项目任意位置的新旧函数加上`@boost`装饰器,是给你函数赋能插上强大翅膀,
|
|
87
|
+
用户不需要围绕`funboost`或某个中央app实例来组织代码结构,用户函数自身就是一等公民
|
|
74
88
|
|
|
75
89
|
2个框架最显而易见明显差别就是 `funboost` 无需 `@app.boost` 而是直接`@boost`,这个小区别,造成影响深远的框架用法和理念区别.
|
|
76
|
-
`funboost`任务控制功能更多,支持broker中间件种类更多,并发方式更多,发布性能超越celery 22倍,消费性能超越 celery 46
|
|
90
|
+
`funboost`任务控制功能更多,支持broker中间件种类更多,并发方式更多,发布性能超越celery 22倍,消费性能超越 celery 46倍,
|
|
91
|
+
性能是高几个数量级的断崖式遥遥领先,但反而使用比celery简单得多.
|
|
77
92
|
```
|
|
78
93
|
|
|
79
94
|
#### **funboost 支持的并发模式:**
|
|
@@ -88,11 +103,8 @@ pip install funboost --upgrade
|
|
|
88
103
|
并且`funboost` 将 `mysql cdc` 这种`mysql binlog`变化捕获作为`broker`,使得`funboost`可以是事件驱动的,远超`celery`的理念.
|
|
89
104
|
`funboost` 还轻松内置了将各种三方消费框架作为`broker`,例如直接将 `celery` `dramatiq` `huey` `rq` `nameko` 作为`broker`,使用这些框架的核心来执行用户的函数
|
|
90
105
|
```
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
`funboost`是python函数加速器,框架包罗万象,一统编程思维,兼容50% `python`编程业务场景,适用范围广,任何新老项目都能用到。
|
|
94
|
-
`funboost` 用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
|
|
95
|
-
```
|
|
106
|
+
|
|
107
|
+
|
|
96
108
|
|
|
97
109
|
|
|
98
110
|
#### **funboost 学习难吗?**
|
|
@@ -27,6 +27,10 @@ class BrokerEnum:
|
|
|
27
27
|
RABBITMQ_AMQPSTORM = 'RABBITMQ_AMQPSTORM' # 使用 amqpstorm 包操作rabbitmq 作为 分布式消息队列,支持消费确认.强烈推荐这个作为funboost中间件。
|
|
28
28
|
RABBITMQ = RABBITMQ_AMQPSTORM
|
|
29
29
|
|
|
30
|
+
# 2025-10 内置新增, 支持rabbitmq 所有路由模式,包括 fanout,direct,topic,headers. 使用概念更复杂
|
|
31
|
+
# 用法见 test_frame/test_broker_rabbitmq/test_rabbitmq_complex_routing 中的demo代码.
|
|
32
|
+
RABBITMQ_COMPLEX_ROUTING = 'RABBITMQ_COMPLEX_ROUTING'
|
|
33
|
+
|
|
30
34
|
RABBITMQ_RABBITPY = 'RABBITMQ_RABBITPY' # 使用 rabbitpy 包操作rabbitmq 作为 分布式消息队列,支持消费确认,不建议使用
|
|
31
35
|
|
|
32
36
|
"""
|