funboost 45.4__tar.gz → 45.7__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-45.4/funboost.egg-info → funboost-45.7}/PKG-INFO +19 -9
- {funboost-45.4 → funboost-45.7}/README.md +18 -7
- {funboost-45.4 → funboost-45.7}/funboost/__init__.py +1 -1
- {funboost-45.4 → funboost-45.7}/funboost/consumers/base_consumer.py +9 -3
- {funboost-45.4 → funboost-45.7}/funboost/consumers/local_python_queue_consumer.py +2 -2
- {funboost-45.4 → funboost-45.7}/funboost/core/current_task.py +1 -1
- {funboost-45.4 → funboost-45.7}/funboost/core/func_params_model.py +2 -4
- funboost-45.7/funboost/function_result_web/__pycache__/functions.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/base_publisher.py +3 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/local_python_queue_publisher.py +8 -7
- funboost-45.7/funboost/queues/memory_queues_map.py +11 -0
- funboost-45.7/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
- funboost-45.7/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py +59 -59
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-39.pyc +0 -0
- funboost-45.7/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/client.py +4804 -4804
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/compat.py +8 -8
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/connection.py +1668 -1668
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py +96 -96
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py +306 -306
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py +15 -15
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py +329 -329
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py +61 -61
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__init__.py +16 -16
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-39.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/exceptions.py +98 -98
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py2_raise.py +7 -7
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py3_raise.py +7 -7
- {funboost-45.4 → funboost-45.7}/funboost/utils/times/__init__.py +85 -85
- {funboost-45.4 → funboost-45.7}/funboost/utils/times/version.py +1 -1
- {funboost-45.4 → funboost-45.7/funboost.egg-info}/PKG-INFO +19 -9
- {funboost-45.4 → funboost-45.7}/funboost.egg-info/SOURCES.txt +2 -30
- {funboost-45.4 → funboost-45.7}/funboost.egg-info/entry_points.txt +0 -1
- {funboost-45.4 → funboost-45.7}/funboost.egg-info/requires.txt +1 -1
- {funboost-45.4 → funboost-45.7}/setup.py +1 -1
- funboost-45.4/funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
- funboost-45.4/funboost/function_result_web/__pycache__/functions.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-37.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-311.pyc +0 -0
- funboost-45.4/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-37.pyc +0 -0
- {funboost-45.4 → funboost-45.7}/LICENSE +0 -0
- {funboost-45.4 → funboost-45.7}/MANIFEST.in +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/__init__old.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/__main__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/assist/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/assist/celery_helper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/assist/dramatiq_helper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/assist/faststream_helper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/assist/huey_helper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/assist/rocketry_helper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/assist/rq_helper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/assist/rq_windows_worker.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/assist/taskiq_helper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/beggar_version_implementation/beggar_redis_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/async_helper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/async_pool_executor.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/backup/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/backup/async_pool_executor0223.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/backup/async_pool_executor_back.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/backup/async_pool_executor_janus.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/base_pool_type.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/bounded_processpoolexcutor_py36.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/bounded_threadpoolexcutor.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/custom_evenlet_pool_executor.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/custom_gevent_pool_executor.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/custom_threadpool_executor.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/custom_threadpool_executor000.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/fixed_thread_pool.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/flexible_thread_pool.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/pool_commons.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/concurrent_pool/single_thread_executor.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/constant.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/celery_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/confirm_mixin.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/dramatiq_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/empty_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/faststream_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/http_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/http_consumer000.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/httpsqs_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/huey_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/kafka_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/kafka_consumer_manually_commit.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/kombu_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/memory_deque_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/mongomq_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/mqtt_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/nameko_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/nats_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/nsq_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/peewee_conusmer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/persist_queue_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/pulsar_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/rabbitmq_amqpstorm_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/rabbitmq_pika_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/rabbitmq_pika_consumerv0.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/rabbitmq_rabbitpy_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/redis_brpoplpush_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/redis_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/redis_consumer_ack_able.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/redis_consumer_ack_using_timeout.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/redis_consumer_priority.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/redis_consumer_simple.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/redis_filter.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/redis_pubsub_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/redis_stream_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/rocketmq_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/rq_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/sqlachemy_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/tcp_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/txt_file_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/udp_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/consumers/zeromq_consumer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/contrib/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/contrib/api_publish_msg.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/contrib/django_db_deco.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/contrib/queue2queue.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/contrib/redis_consume_latest_msg_broker.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/contrib/save_result_status_to_sqldb.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/active_cousumer_info_getter.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/booster.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/cli/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/cli/discovery_boosters.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/cli/funboost_cli_user_templ.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/cli/funboost_fire.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/exceptions.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/fabric_deploy_helper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/funboost_config_getter.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/funboost_time.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/function_result_status_config.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/function_result_status_saver.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/helper_funs.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/kill_remote_task.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/lazy_impoter.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/loggers.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/msg_result_getter.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/muliti_process_enhance.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/serialization.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/core/task_id_logger.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/factories/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/factories/broker_kind__publsiher_consumer_type_map.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/factories/consumer_factory.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/factories/publisher_factotry.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/funboost_config_deafult.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/app.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/functions.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/assets/css/custom.css +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/assets/css/jquery.mCustomScrollbar.min.css +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/assets/img/user.jpg +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/assets/js/custom.js +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/assets/js/jquery.mCustomScrollbar.concat.min.js +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/css/style.css +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/images/bg.jpg +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/images/password.png +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/images/tick.png +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/images/user.png +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/static/js/jquery-1.11.0.min.js +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/templates/index.html +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/function_result_web/templates/login.html +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/celery_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/celery_publisher000.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/confluent_kafka_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/dramatiq_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/empty_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/faststream_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/http_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/httpsqs_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/huey_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/kafka_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/kombu_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/meomory_deque_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/mongomq_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/mqtt_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/nameko_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/nats_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/nsq_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/peewee_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/persist_queue_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/pulsar_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/rabbitmq_amqpstorm_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/rabbitmq_pika_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/rabbitmq_rabbitpy_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/redis_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/redis_publisher_lpush.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/redis_publisher_priority.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/redis_publisher_simple.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/redis_pubsub_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/redis_queue_flush_mixin.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/redis_stream_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/rocketmq_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/rq_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/sqla_queue_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/tcp_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/txt_file_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/udp_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/publishers/zeromq_publisher.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/queues/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/queues/peewee_queue.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/queues/sqla_queue.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/set_frame_config.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/timing_job/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/timing_job/apscheduler_use_mysql_store.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/timing_job/apscheduler_use_redis_store.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/apscheduler_monkey.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/block_exit.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/bulk_operation.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/class_utils.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/ctrl_c_end.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/custom_pysnooper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/decorators.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages/mongomq/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages/mongomq/lock.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages/mongomq/mongomq.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages/mongomq/mongomq0000.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages/mongomq/test.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages/mongomq/utils.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/StoppableThread.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc2222.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/develop_log.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/expire_lock.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/json_helper.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/mongo_util.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/monkey_color_log.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/monkey_patches.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/mqtt_util.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/paramiko_util.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/pysnooper_ydf/__init__.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/pysnooper_ydf/pycompat.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/pysnooper_ydf/tracer.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/pysnooper_ydf/utils.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/pysnooper_ydf/variables.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/rabbitmq_factory.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/redis_manager.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/redis_manager_old.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/resource_monitoring.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/restart_python.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/simple_data_class.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/str_utils.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/time_util.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost/utils/un_strict_json_dumps.py +0 -0
- {funboost-45.4 → funboost-45.7}/funboost.egg-info/dependency_links.txt +0 -0
- {funboost-45.4 → funboost-45.7}/funboost.egg-info/top_level.txt +0 -0
- {funboost-45.4 → funboost-45.7}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 45.
|
|
3
|
+
Version: 45.7
|
|
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
|
|
@@ -47,16 +47,25 @@ License-File: LICENSE
|
|
|
47
47
|
|
|
48
48
|
|
|
49
49
|
<pre style="color: greenyellow;background-color: #0c1119; font-size: medium;">
|
|
50
|
-
pip install funboost ,python
|
|
51
|
-
|
|
50
|
+
pip install funboost ,python全功能分布式函数调度框架。 demo用法例子见文档1.3
|
|
51
|
+
|
|
52
|
+
只需要一行@boost代码即可分布式执行python一切任意函数,99%用过funboost的pythoner 感受是 方便 快速 强大。
|
|
53
|
+
支持python所有类型的并发模式,消息队列方面支持全球一切知名消息队列中间件和模拟的实现消息队列,
|
|
52
54
|
同时funboost支持celery整个框架作为核心来发布和消费消息,使用funboost的极简api方式来自动化配置和利用celery调度,
|
|
53
55
|
也支持huey dramatiq rq等任务队列框架作为funboost的broker。
|
|
56
|
+
|
|
54
57
|
python函数加速器,框架包罗万象,一统编程思维,兼容50% python编程业务场景,适用范围广。
|
|
55
|
-
只需要一行代码即可分布式执行python一切函数,99%用过funboost的pythoner 感受是 方便 快速 强大。
|
|
56
58
|
python万能分布式函数调度框架,支持5种并发模式,30+种消息队列中间件(或任务队列框架),
|
|
57
59
|
30种任务控制功能。给任意python函数赋能。
|
|
58
60
|
用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
|
|
61
|
+
|
|
59
62
|
框架只需要学习@boost这一个装饰器的入参就可以,所有用法几乎和1.3例子一摸一样,非常简化简单。
|
|
63
|
+
框架对代码没有入侵,可以加到任意已有项目而对项目python文件目录结构0要求,
|
|
64
|
+
不像 celery django scrapy 这样的框架,要从一开始就开始规划好项目目录结构,如果不想用框架了,
|
|
65
|
+
或者想改变使用其他框架框架,那么已经所写的代码组织形式就几乎成了废物,需要大改特改.
|
|
66
|
+
但是funboost完全不会这样,加上或去掉@boost装饰器,对你的项目影响为0,用户照常使用,
|
|
67
|
+
所以用户可以对任意项目,任意时候,引入使用funboost或者去掉使用funboost,代码组织形式不需要发生变化.
|
|
68
|
+
|
|
60
69
|
</pre>
|
|
61
70
|
|
|
62
71
|
### 框架评价
|
|
@@ -73,6 +82,7 @@ python万能分布式函数调度框架,支持5种并发模式,30+种消息
|
|
|
73
82
|
,连celery命令行运行起来都要反复猜测尝试。
|
|
74
83
|
正因为如此用户从心理已近十分惧怕学习一种叫python框架的东西了,用户顶多愿意学习一个python包或者模块,
|
|
75
84
|
学习一个框架会非常害怕觉得难度高且耗时,所以非常反感尝试新的框架。
|
|
85
|
+
用过的99%都说funboost比celery简单方便太多,看都不看的人第一秒就是开始质疑重复造轮子.
|
|
76
86
|
|
|
77
87
|
funboost只有一个@boost装饰器,@boost入参能自动补全,更重要的是被@boost装饰的函数,
|
|
78
88
|
有哪些方法,每个方法入参是什么都能自动补全。funboost的中间件配置文件自当生成在用户当前项目根目录,
|
|
@@ -211,10 +221,10 @@ if __name__ == '__main__':
|
|
|
211
221
|
2)funboost 使用内存队列,设置10线程并发
|
|
212
222
|
```python
|
|
213
223
|
import time
|
|
214
|
-
from funboost import
|
|
224
|
+
from funboost import BoosterParams, BrokerEnum
|
|
215
225
|
|
|
216
226
|
|
|
217
|
-
@
|
|
227
|
+
@BoosterParams(queue_name="test_insteda_thread_queue", broker_kind=BrokerEnum.MEMORY_QUEUE, concurrent_num=10, is_auto_start_consuming_message=True)
|
|
218
228
|
def f(x):
|
|
219
229
|
time.sleep(3)
|
|
220
230
|
print(x)
|
|
@@ -223,7 +233,8 @@ def f(x):
|
|
|
223
233
|
if __name__ == '__main__':
|
|
224
234
|
for i in range(100):
|
|
225
235
|
f.push(i)
|
|
226
|
-
|
|
236
|
+
|
|
237
|
+
|
|
227
238
|
```
|
|
228
239
|
|
|
229
240
|
|
|
@@ -478,7 +489,7 @@ python比其他语言更需要分布式函数调度框架来执行函数,有
|
|
|
478
489
|
funboost通过支持celery作为broker_kind,使celer框架变成了funboost的一个子集
|
|
479
490
|
```
|
|
480
491
|
|
|
481
|
-
[查看分布式函数调度框架完整文档](https://funboost.readthedocs.io/
|
|
492
|
+
[查看分布式函数调度框架完整文档](https://funboost.readthedocs.io/)
|
|
482
493
|
|
|
483
494
|
|
|
484
495
|
|
|
@@ -492,4 +503,3 @@ funboost通过支持celery作为broker_kind,使celer框架变成了funboost的
|
|
|
492
503
|

|
|
493
504
|
|
|
494
505
|
<div> </div>
|
|
495
|
-
|
|
@@ -15,16 +15,25 @@
|
|
|
15
15
|
|
|
16
16
|
|
|
17
17
|
<pre style="color: greenyellow;background-color: #0c1119; font-size: medium;">
|
|
18
|
-
pip install funboost ,python
|
|
19
|
-
|
|
18
|
+
pip install funboost ,python全功能分布式函数调度框架。 demo用法例子见文档1.3
|
|
19
|
+
|
|
20
|
+
只需要一行@boost代码即可分布式执行python一切任意函数,99%用过funboost的pythoner 感受是 方便 快速 强大。
|
|
21
|
+
支持python所有类型的并发模式,消息队列方面支持全球一切知名消息队列中间件和模拟的实现消息队列,
|
|
20
22
|
同时funboost支持celery整个框架作为核心来发布和消费消息,使用funboost的极简api方式来自动化配置和利用celery调度,
|
|
21
23
|
也支持huey dramatiq rq等任务队列框架作为funboost的broker。
|
|
24
|
+
|
|
22
25
|
python函数加速器,框架包罗万象,一统编程思维,兼容50% python编程业务场景,适用范围广。
|
|
23
|
-
只需要一行代码即可分布式执行python一切函数,99%用过funboost的pythoner 感受是 方便 快速 强大。
|
|
24
26
|
python万能分布式函数调度框架,支持5种并发模式,30+种消息队列中间件(或任务队列框架),
|
|
25
27
|
30种任务控制功能。给任意python函数赋能。
|
|
26
28
|
用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
|
|
29
|
+
|
|
27
30
|
框架只需要学习@boost这一个装饰器的入参就可以,所有用法几乎和1.3例子一摸一样,非常简化简单。
|
|
31
|
+
框架对代码没有入侵,可以加到任意已有项目而对项目python文件目录结构0要求,
|
|
32
|
+
不像 celery django scrapy 这样的框架,要从一开始就开始规划好项目目录结构,如果不想用框架了,
|
|
33
|
+
或者想改变使用其他框架框架,那么已经所写的代码组织形式就几乎成了废物,需要大改特改.
|
|
34
|
+
但是funboost完全不会这样,加上或去掉@boost装饰器,对你的项目影响为0,用户照常使用,
|
|
35
|
+
所以用户可以对任意项目,任意时候,引入使用funboost或者去掉使用funboost,代码组织形式不需要发生变化.
|
|
36
|
+
|
|
28
37
|
</pre>
|
|
29
38
|
|
|
30
39
|
### 框架评价
|
|
@@ -41,6 +50,7 @@ python万能分布式函数调度框架,支持5种并发模式,30+种消息
|
|
|
41
50
|
,连celery命令行运行起来都要反复猜测尝试。
|
|
42
51
|
正因为如此用户从心理已近十分惧怕学习一种叫python框架的东西了,用户顶多愿意学习一个python包或者模块,
|
|
43
52
|
学习一个框架会非常害怕觉得难度高且耗时,所以非常反感尝试新的框架。
|
|
53
|
+
用过的99%都说funboost比celery简单方便太多,看都不看的人第一秒就是开始质疑重复造轮子.
|
|
44
54
|
|
|
45
55
|
funboost只有一个@boost装饰器,@boost入参能自动补全,更重要的是被@boost装饰的函数,
|
|
46
56
|
有哪些方法,每个方法入参是什么都能自动补全。funboost的中间件配置文件自当生成在用户当前项目根目录,
|
|
@@ -179,10 +189,10 @@ if __name__ == '__main__':
|
|
|
179
189
|
2)funboost 使用内存队列,设置10线程并发
|
|
180
190
|
```python
|
|
181
191
|
import time
|
|
182
|
-
from funboost import
|
|
192
|
+
from funboost import BoosterParams, BrokerEnum
|
|
183
193
|
|
|
184
194
|
|
|
185
|
-
@
|
|
195
|
+
@BoosterParams(queue_name="test_insteda_thread_queue", broker_kind=BrokerEnum.MEMORY_QUEUE, concurrent_num=10, is_auto_start_consuming_message=True)
|
|
186
196
|
def f(x):
|
|
187
197
|
time.sleep(3)
|
|
188
198
|
print(x)
|
|
@@ -191,7 +201,8 @@ def f(x):
|
|
|
191
201
|
if __name__ == '__main__':
|
|
192
202
|
for i in range(100):
|
|
193
203
|
f.push(i)
|
|
194
|
-
|
|
204
|
+
|
|
205
|
+
|
|
195
206
|
```
|
|
196
207
|
|
|
197
208
|
|
|
@@ -446,7 +457,7 @@ python比其他语言更需要分布式函数调度框架来执行函数,有
|
|
|
446
457
|
funboost通过支持celery作为broker_kind,使celer框架变成了funboost的一个子集
|
|
447
458
|
```
|
|
448
459
|
|
|
449
|
-
[查看分布式函数调度框架完整文档](https://funboost.readthedocs.io/
|
|
460
|
+
[查看分布式函数调度框架完整文档](https://funboost.readthedocs.io/)
|
|
450
461
|
|
|
451
462
|
|
|
452
463
|
|
|
@@ -140,7 +140,7 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
140
140
|
if consumer_params.consuming_function is None:
|
|
141
141
|
raise ValueError('必须传 consuming_function 参数')
|
|
142
142
|
|
|
143
|
-
self._msg_schedule_time_intercal = 0 if consumer_params.qps in (None,0) else 1.0 / consumer_params.qps
|
|
143
|
+
self._msg_schedule_time_intercal = 0 if consumer_params.qps in (None, 0) else 1.0 / consumer_params.qps
|
|
144
144
|
|
|
145
145
|
self._concurrent_mode_dispatcher = ConcurrentModeDispatcher(self)
|
|
146
146
|
if consumer_params.concurrent_mode == ConcurrentModeEnum.ASYNC:
|
|
@@ -233,6 +233,10 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
233
233
|
self.logger.info(f'{self.queue_name} consumer 的消费者配置:\n {self.consumer_params.json_str_value()}')
|
|
234
234
|
atexit.register(self.join_shedual_task_thread)
|
|
235
235
|
|
|
236
|
+
if self.consumer_params.is_auto_start_consuming_message:
|
|
237
|
+
_ = self.publisher_of_same_queue
|
|
238
|
+
self.start_consuming_message()
|
|
239
|
+
|
|
236
240
|
def _build_logger(self):
|
|
237
241
|
logger_prefix = self.consumer_params.logger_prefix
|
|
238
242
|
if logger_prefix != '':
|
|
@@ -585,10 +589,12 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
585
589
|
# method_cls = getattr(sys.modules[self.consumer_params.consuming_function_class_module],
|
|
586
590
|
# self.consumer_params.consuming_function_class_name)
|
|
587
591
|
if self.publisher_params.consuming_function_kind == FunctionKind.CLASS_METHOD:
|
|
588
|
-
method_cls = getattr(PathHelper(method_first_param_value[ConstStrForClassMethod.
|
|
592
|
+
method_cls = getattr(PathHelper.import_module(method_first_param_value[ConstStrForClassMethod.CLS_MODULE]),
|
|
593
|
+
method_first_param_value[ConstStrForClassMethod.CLS_NAME])
|
|
589
594
|
real_function_only_params[method_first_param_name] = method_cls
|
|
590
595
|
elif self.publisher_params.consuming_function_kind == FunctionKind.INSTANCE_METHOD:
|
|
591
|
-
method_cls = getattr(PathHelper(method_first_param_value[ConstStrForClassMethod.
|
|
596
|
+
method_cls = getattr(PathHelper.import_module(method_first_param_value[ConstStrForClassMethod.CLS_MODULE]),
|
|
597
|
+
method_first_param_value[ConstStrForClassMethod.CLS_NAME])
|
|
592
598
|
obj = method_cls(**method_first_param_value[ConstStrForClassMethod.OBJ_INIT_PARAMS])
|
|
593
599
|
real_function_only_params[method_first_param_name] = obj
|
|
594
600
|
# print(real_function_only_params)
|
|
@@ -5,7 +5,7 @@ import json
|
|
|
5
5
|
from queue import Queue,SimpleQueue
|
|
6
6
|
from funboost.constant import BrokerEnum
|
|
7
7
|
from funboost.consumers.base_consumer import AbstractConsumer
|
|
8
|
-
from funboost.
|
|
8
|
+
from funboost.queues.memory_queues_map import PythonQueues
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
class LocalPythonQueueConsumer(AbstractConsumer):
|
|
@@ -15,7 +15,7 @@ class LocalPythonQueueConsumer(AbstractConsumer):
|
|
|
15
15
|
|
|
16
16
|
@property
|
|
17
17
|
def local_python_queue(self) -> Queue:
|
|
18
|
-
return
|
|
18
|
+
return PythonQueues.get_queue(self._queue_name)
|
|
19
19
|
|
|
20
20
|
def _shedual_task(self):
|
|
21
21
|
while True:
|
|
@@ -163,7 +163,7 @@ def get_current_taskid():
|
|
|
163
163
|
# return fct.function_result_status.task_id
|
|
164
164
|
try:
|
|
165
165
|
fct = funboost_current_task()
|
|
166
|
-
return fct.task_id # 不在funboost
|
|
166
|
+
return fct.task_id # 不在funboost的消费函数里面或者同个线程、协程就获取不到上下文了
|
|
167
167
|
except (AttributeError, LookupError) as e:
|
|
168
168
|
# print(e,type(e))
|
|
169
169
|
return 'no_task_id'
|
|
@@ -177,6 +177,7 @@ class BoosterParams(BaseJsonAbleModel):
|
|
|
177
177
|
do_not_run_by_specify_time: tuple = ('10:00:00', '22:00:00') # 不运行的时间段,在这个时间段自动不运行函数.
|
|
178
178
|
|
|
179
179
|
schedule_tasks_on_main_thread: bool = False # 直接在主线程调度任务,意味着不能直接在当前主线程同时开启两个消费者。
|
|
180
|
+
is_auto_start_consuming_message: bool = False # 是否在定义后就自动启动消费,无需用户手动写 .consume() 来启动消息消费。
|
|
180
181
|
|
|
181
182
|
consuming_function: typing.Callable = None # 消费函数,在@boost时候不用指定,因为装饰器知道下面的函数.
|
|
182
183
|
consuming_function_raw: typing.Callable = None
|
|
@@ -195,8 +196,7 @@ class BoosterParams(BaseJsonAbleModel):
|
|
|
195
196
|
|
|
196
197
|
auto_generate_info: dict = {} # 自动生成的信息,不需要用户主动传参.
|
|
197
198
|
|
|
198
|
-
consuming_function_kind
|
|
199
|
-
|
|
199
|
+
consuming_function_kind: typing.Optional[str] = None # 自动生成的信息,不需要用户主动传参,如果自动判断失误就传递。
|
|
200
200
|
|
|
201
201
|
@root_validator(skip_on_failure=True)
|
|
202
202
|
def check_values(cls, values: dict):
|
|
@@ -269,7 +269,6 @@ class PriorityConsumingControlConfig(BaseJsonAbleModel):
|
|
|
269
269
|
misfire_grace_time: typing.Union[int, None] = None
|
|
270
270
|
other_extra_params: dict = None # 其他参数, 例如消息优先级 , priority_control_config=PriorityConsumingControlConfig(other_extra_params={'priroty': priorityxx}),
|
|
271
271
|
|
|
272
|
-
|
|
273
272
|
@root_validator(skip_on_failure=True)
|
|
274
273
|
def cehck_values(cls, values: dict):
|
|
275
274
|
if values['countdown'] and values['eta']:
|
|
@@ -297,7 +296,6 @@ class PublisherParams(BaseJsonAbleModel):
|
|
|
297
296
|
consuming_function_kind: typing.Optional[str] = None # 自动生成的信息,不需要用户主动传参.
|
|
298
297
|
|
|
299
298
|
|
|
300
|
-
|
|
301
299
|
if __name__ == '__main__':
|
|
302
300
|
from funboost.concurrent_pool import FlexibleThreadPool
|
|
303
301
|
|
|
@@ -33,6 +33,7 @@ from funboost.core.serialization import Serialization
|
|
|
33
33
|
from funboost.core.task_id_logger import TaskIdLogger
|
|
34
34
|
from funboost.utils import decorators
|
|
35
35
|
from funboost.funboost_config_deafult import BrokerConnConfig, FunboostCommonConfig
|
|
36
|
+
from nb_libs.path_helper import PathHelper
|
|
36
37
|
|
|
37
38
|
RedisAsyncResult = AsyncResult # 别名
|
|
38
39
|
RedisAioAsyncResult = AioAsyncResult # 别名
|
|
@@ -271,6 +272,7 @@ class AbstractPublisher(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
271
272
|
func_args_list[0] = {ConstStrForClassMethod.FIRST_PARAM_NAME: self.publish_params_checker.all_arg_name[0],
|
|
272
273
|
ConstStrForClassMethod.CLS_NAME: cls.__name__,
|
|
273
274
|
ConstStrForClassMethod.CLS_FILE: self.__get_cls_file(cls),
|
|
275
|
+
ConstStrForClassMethod.CLS_MODULE: PathHelper(self.__get_cls_file(cls)).get_module_name(),
|
|
274
276
|
}
|
|
275
277
|
elif self.publisher_params.consuming_function_kind == FunctionKind.INSTANCE_METHOD:
|
|
276
278
|
obj = func_args[0]
|
|
@@ -280,6 +282,7 @@ class AbstractPublisher(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
280
282
|
func_args_list[0] = {ConstStrForClassMethod.FIRST_PARAM_NAME: self.publish_params_checker.all_arg_name[0],
|
|
281
283
|
ConstStrForClassMethod.CLS_NAME: cls.__name__,
|
|
282
284
|
ConstStrForClassMethod.CLS_FILE: self.__get_cls_file(cls),
|
|
285
|
+
ConstStrForClassMethod.CLS_MODULE: PathHelper(self.__get_cls_file(cls)).get_module_name(),
|
|
283
286
|
ConstStrForClassMethod.OBJ_INIT_PARAMS: getattr(obj, ConstStrForClassMethod.OBJ_INIT_PARAMS),
|
|
284
287
|
|
|
285
288
|
}
|
|
@@ -5,6 +5,7 @@ from collections import deque
|
|
|
5
5
|
from queue import Queue, SimpleQueue
|
|
6
6
|
|
|
7
7
|
from funboost.publishers.base_publisher import AbstractPublisher
|
|
8
|
+
from funboost.queues.memory_queues_map import PythonQueues
|
|
8
9
|
|
|
9
10
|
local_pyhton_queue_name__local_pyhton_queue_obj_map = dict() # 使local queue和其他中间件完全一样的使用方式,使用映射保存队列的名字,使消费和发布通过队列名字能找到队列对象。
|
|
10
11
|
|
|
@@ -15,23 +16,23 @@ class LocalPythonQueuePublisher(AbstractPublisher):
|
|
|
15
16
|
"""
|
|
16
17
|
|
|
17
18
|
# noinspection PyAttributeOutsideInit
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
|
|
20
|
+
@property
|
|
21
|
+
def local_python_queue(self) -> Queue:
|
|
22
|
+
return PythonQueues.get_queue(self._queue_name)
|
|
22
23
|
|
|
23
24
|
def concrete_realization_of_publish(self, msg):
|
|
24
25
|
# noinspection PyTypeChecker
|
|
25
26
|
pass
|
|
26
|
-
self.
|
|
27
|
+
self.local_python_queue.put(msg)
|
|
27
28
|
|
|
28
29
|
def clear(self):
|
|
29
30
|
# noinspection PyUnresolvedReferences
|
|
30
|
-
self.
|
|
31
|
+
self.local_python_queue.queue.clear()
|
|
31
32
|
self.logger.warning(f'清除 本地队列中的消息成功')
|
|
32
33
|
|
|
33
34
|
def get_message_count(self):
|
|
34
|
-
return self.
|
|
35
|
+
return self.local_python_queue.qsize()
|
|
35
36
|
|
|
36
37
|
def close(self):
|
|
37
38
|
pass
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import queue
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
class PythonQueues:
|
|
5
|
+
local_pyhton_queue_name__local_pyhton_queue_obj_map = {}
|
|
6
|
+
|
|
7
|
+
@classmethod
|
|
8
|
+
def get_queue(cls,queue_name):
|
|
9
|
+
if queue_name not in cls.local_pyhton_queue_name__local_pyhton_queue_obj_map:
|
|
10
|
+
cls.local_pyhton_queue_name__local_pyhton_queue_obj_map[queue_name] = queue.Queue()
|
|
11
|
+
return cls.local_pyhton_queue_name__local_pyhton_queue_obj_map[queue_name]
|
funboost-45.7/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc
ADDED
|
Binary file
|
|
Binary file
|
|
@@ -1,59 +1,59 @@
|
|
|
1
|
-
from aioredis.client import Redis, StrictRedis
|
|
2
|
-
from aioredis.connection import (
|
|
3
|
-
BlockingConnectionPool,
|
|
4
|
-
Connection,
|
|
5
|
-
ConnectionPool,
|
|
6
|
-
SSLConnection,
|
|
7
|
-
UnixDomainSocketConnection,
|
|
8
|
-
)
|
|
9
|
-
from aioredis.exceptions import (
|
|
10
|
-
AuthenticationError,
|
|
11
|
-
AuthenticationWrongNumberOfArgsError,
|
|
12
|
-
BusyLoadingError,
|
|
13
|
-
ChildDeadlockedError,
|
|
14
|
-
ConnectionError,
|
|
15
|
-
DataError,
|
|
16
|
-
InvalidResponse,
|
|
17
|
-
PubSubError,
|
|
18
|
-
ReadOnlyError,
|
|
19
|
-
RedisError,
|
|
20
|
-
ResponseError,
|
|
21
|
-
TimeoutError,
|
|
22
|
-
WatchError,
|
|
23
|
-
)
|
|
24
|
-
from aioredis.utils import from_url
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
def int_or_str(value):
|
|
28
|
-
try:
|
|
29
|
-
return int(value)
|
|
30
|
-
except ValueError:
|
|
31
|
-
return value
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
__version__ = "2.0.1"
|
|
35
|
-
VERSION = tuple(map(int_or_str, __version__.split(".")))
|
|
36
|
-
|
|
37
|
-
__all__ = [
|
|
38
|
-
"AuthenticationError",
|
|
39
|
-
"AuthenticationWrongNumberOfArgsError",
|
|
40
|
-
"BlockingConnectionPool",
|
|
41
|
-
"BusyLoadingError",
|
|
42
|
-
"ChildDeadlockedError",
|
|
43
|
-
"Connection",
|
|
44
|
-
"ConnectionError",
|
|
45
|
-
"ConnectionPool",
|
|
46
|
-
"DataError",
|
|
47
|
-
"from_url",
|
|
48
|
-
"InvalidResponse",
|
|
49
|
-
"PubSubError",
|
|
50
|
-
"ReadOnlyError",
|
|
51
|
-
"Redis",
|
|
52
|
-
"RedisError",
|
|
53
|
-
"ResponseError",
|
|
54
|
-
"SSLConnection",
|
|
55
|
-
"StrictRedis",
|
|
56
|
-
"TimeoutError",
|
|
57
|
-
"UnixDomainSocketConnection",
|
|
58
|
-
"WatchError",
|
|
59
|
-
]
|
|
1
|
+
from aioredis.client import Redis, StrictRedis
|
|
2
|
+
from aioredis.connection import (
|
|
3
|
+
BlockingConnectionPool,
|
|
4
|
+
Connection,
|
|
5
|
+
ConnectionPool,
|
|
6
|
+
SSLConnection,
|
|
7
|
+
UnixDomainSocketConnection,
|
|
8
|
+
)
|
|
9
|
+
from aioredis.exceptions import (
|
|
10
|
+
AuthenticationError,
|
|
11
|
+
AuthenticationWrongNumberOfArgsError,
|
|
12
|
+
BusyLoadingError,
|
|
13
|
+
ChildDeadlockedError,
|
|
14
|
+
ConnectionError,
|
|
15
|
+
DataError,
|
|
16
|
+
InvalidResponse,
|
|
17
|
+
PubSubError,
|
|
18
|
+
ReadOnlyError,
|
|
19
|
+
RedisError,
|
|
20
|
+
ResponseError,
|
|
21
|
+
TimeoutError,
|
|
22
|
+
WatchError,
|
|
23
|
+
)
|
|
24
|
+
from aioredis.utils import from_url
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def int_or_str(value):
|
|
28
|
+
try:
|
|
29
|
+
return int(value)
|
|
30
|
+
except ValueError:
|
|
31
|
+
return value
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
__version__ = "2.0.1"
|
|
35
|
+
VERSION = tuple(map(int_or_str, __version__.split(".")))
|
|
36
|
+
|
|
37
|
+
__all__ = [
|
|
38
|
+
"AuthenticationError",
|
|
39
|
+
"AuthenticationWrongNumberOfArgsError",
|
|
40
|
+
"BlockingConnectionPool",
|
|
41
|
+
"BusyLoadingError",
|
|
42
|
+
"ChildDeadlockedError",
|
|
43
|
+
"Connection",
|
|
44
|
+
"ConnectionError",
|
|
45
|
+
"ConnectionPool",
|
|
46
|
+
"DataError",
|
|
47
|
+
"from_url",
|
|
48
|
+
"InvalidResponse",
|
|
49
|
+
"PubSubError",
|
|
50
|
+
"ReadOnlyError",
|
|
51
|
+
"Redis",
|
|
52
|
+
"RedisError",
|
|
53
|
+
"ResponseError",
|
|
54
|
+
"SSLConnection",
|
|
55
|
+
"StrictRedis",
|
|
56
|
+
"TimeoutError",
|
|
57
|
+
"UnixDomainSocketConnection",
|
|
58
|
+
"WatchError",
|
|
59
|
+
]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|