funboost 46.2__tar.gz → 46.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-46.2/funboost.egg-info → funboost-46.4}/PKG-INFO +3 -2
- {funboost-46.2 → funboost-46.4}/README.md +2 -2
- {funboost-46.2 → funboost-46.4}/funboost/__init__.py +1 -1
- {funboost-46.2 → funboost-46.4}/funboost/consumers/base_consumer.py +14 -5
- {funboost-46.2 → funboost-46.4}/funboost/core/booster.py +8 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/func_params_model.py +19 -4
- {funboost-46.2 → funboost-46.4}/funboost/core/lazy_impoter.py +6 -0
- {funboost-46.2 → funboost-46.4}/funboost/timing_job/apscheduler_use_redis_store.py +1 -1
- {funboost-46.2 → funboost-46.4/funboost.egg-info}/PKG-INFO +3 -2
- {funboost-46.2 → funboost-46.4}/LICENSE +0 -0
- {funboost-46.2 → funboost-46.4}/MANIFEST.in +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/__init__old.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/__main__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/assist/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/assist/celery_helper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/assist/dramatiq_helper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/assist/faststream_helper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/assist/huey_helper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/assist/rocketry_helper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/assist/rq_helper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/assist/rq_windows_worker.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/assist/taskiq_helper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/beggar_version_implementation/beggar_redis_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/async_helper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/async_pool_executor.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/backup/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/backup/async_pool_executor0223.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/backup/async_pool_executor_back.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/backup/async_pool_executor_janus.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/base_pool_type.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/bounded_processpoolexcutor_py36.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/bounded_threadpoolexcutor.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/custom_evenlet_pool_executor.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/custom_gevent_pool_executor.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/custom_threadpool_executor.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/custom_threadpool_executor000.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/fixed_thread_pool.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/flexible_thread_pool.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/pool_commons.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/single_thread_executor.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/constant.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/celery_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/confirm_mixin.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/dramatiq_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/empty_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/faststream_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/http_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/http_consumer000.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/httpsqs_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/huey_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/kafka_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/kafka_consumer_manually_commit.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/kombu_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/local_python_queue_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/memory_deque_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/mongomq_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/mqtt_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/nameko_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/nats_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/nsq_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/peewee_conusmer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/persist_queue_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/pulsar_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/rabbitmq_amqpstorm_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/rabbitmq_pika_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/rabbitmq_pika_consumerv0.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/rabbitmq_rabbitpy_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/redis_brpoplpush_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/redis_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/redis_consumer_ack_able.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/redis_consumer_ack_using_timeout.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/redis_consumer_priority.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/redis_consumer_simple.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/redis_filter.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/redis_pubsub_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/redis_stream_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/rocketmq_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/rq_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/sqlachemy_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/tcp_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/txt_file_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/udp_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/consumers/zeromq_consumer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/contrib/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/contrib/api_publish_msg.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/contrib/django_db_deco.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/contrib/queue2queue.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/contrib/redis_consume_latest_msg_broker.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/contrib/save_result_status_to_sqldb.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/active_cousumer_info_getter.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/cli/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/cli/discovery_boosters.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/cli/funboost_cli_user_templ.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/cli/funboost_fire.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/current_task.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/exceptions.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/fabric_deploy_helper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/funboost_config_getter.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/funboost_time.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/function_result_status_config.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/function_result_status_saver.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/helper_funs.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/kill_remote_task.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/loggers.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/msg_result_getter.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/muliti_process_enhance.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/serialization.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/core/task_id_logger.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/factories/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/factories/broker_kind__publsiher_consumer_type_map.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/factories/consumer_factory.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/factories/publisher_factotry.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/funboost_config_deafult.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/__pycache__/functions.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/app.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/functions.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/assets/css/custom.css +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/assets/css/jquery.mCustomScrollbar.min.css +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/assets/img/user.jpg +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/assets/js/custom.js +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/assets/js/jquery.mCustomScrollbar.concat.min.js +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/css/style.css +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/images/bg.jpg +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/images/password.png +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/images/tick.png +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/images/user.png +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/static/js/jquery-1.11.0.min.js +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/templates/index.html +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/function_result_web/templates/login.html +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/base_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/celery_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/celery_publisher000.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/confluent_kafka_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/dramatiq_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/empty_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/faststream_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/http_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/httpsqs_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/huey_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/kafka_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/kombu_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/local_python_queue_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/meomory_deque_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/mongomq_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/mqtt_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/nameko_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/nats_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/nsq_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/peewee_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/persist_queue_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/pulsar_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/rabbitmq_amqpstorm_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/rabbitmq_pika_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/rabbitmq_rabbitpy_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/redis_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/redis_publisher_lpush.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/redis_publisher_priority.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/redis_publisher_simple.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/redis_pubsub_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/redis_queue_flush_mixin.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/redis_stream_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/rocketmq_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/rq_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/sqla_queue_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/tcp_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/txt_file_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/udp_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/publishers/zeromq_publisher.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/queues/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/queues/memory_queues_map.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/queues/peewee_queue.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/queues/sqla_queue.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/set_frame_config.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/timing_job/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/timing_job/apscheduler_use_mysql_store.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/apscheduler_monkey.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/block_exit.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/bulk_operation.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/class_utils.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/ctrl_c_end.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/custom_pysnooper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/decorators.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages/mongomq/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages/mongomq/lock.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages/mongomq/mongomq.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages/mongomq/mongomq0000.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages/mongomq/test.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages/mongomq/utils.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/client.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/compat.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/connection.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/StoppableThread.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-311.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-37.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-39.pyc +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc2222.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/exceptions.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py2_raise.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py3_raise.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/develop_log.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/expire_lock.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/json_helper.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/mongo_util.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/monkey_color_log.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/monkey_patches.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/mqtt_util.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/paramiko_util.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/pysnooper_ydf/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/pysnooper_ydf/pycompat.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/pysnooper_ydf/tracer.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/pysnooper_ydf/utils.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/pysnooper_ydf/variables.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/rabbitmq_factory.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/redis_manager.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/redis_manager_old.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/resource_monitoring.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/restart_python.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/simple_data_class.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/str_utils.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/time_util.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/times/__init__.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/times/version.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost/utils/un_strict_json_dumps.py +0 -0
- {funboost-46.2 → funboost-46.4}/funboost.egg-info/SOURCES.txt +0 -0
- {funboost-46.2 → funboost-46.4}/funboost.egg-info/dependency_links.txt +0 -0
- {funboost-46.2 → funboost-46.4}/funboost.egg-info/entry_points.txt +0 -0
- {funboost-46.2 → funboost-46.4}/funboost.egg-info/requires.txt +0 -0
- {funboost-46.2 → funboost-46.4}/funboost.egg-info/top_level.txt +0 -0
- {funboost-46.2 → funboost-46.4}/setup.cfg +0 -0
- {funboost-46.2 → funboost-46.4}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 46.
|
|
3
|
+
Version: 46.4
|
|
4
4
|
Summary: pip install funboost,python全功能分布式函数调度框架,funboost的功能是全面性重量级,用户能想得到的功能99%全都有;funboost的使用方式是轻量级,只有@boost一行代码需要写。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚
|
|
5
5
|
Home-page: https://github.com/ydf0509/funboost
|
|
6
6
|
Author: bfzs
|
|
@@ -58,7 +58,7 @@ funboost的功能是全面性重量级,用户能想得到的功能99%全都有
|
|
|
58
58
|
|
|
59
59
|
python函数加速器,框架包罗万象,一统编程思维,兼容50% python编程业务场景,适用范围广。
|
|
60
60
|
python万能分布式函数调度框架,支持5种并发模式,30+种消息队列中间件(或任务队列框架),
|
|
61
|
-
30种任务控制功能。给任意python函数赋能。
|
|
61
|
+
30种任务控制功能。给任意python函数赋能。
|
|
62
62
|
用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
|
|
63
63
|
|
|
64
64
|
框架只需要学习@boost这一个装饰器的入参就可以,所有用法几乎和1.3例子一摸一样,非常简化简单。
|
|
@@ -507,3 +507,4 @@ funboost通过支持celery作为broker_kind,使celer框架变成了funboost的
|
|
|
507
507
|
|
|
508
508
|
<div> </div>
|
|
509
509
|
|
|
510
|
+
|
|
@@ -26,7 +26,7 @@ funboost的功能是全面性重量级,用户能想得到的功能99%全都有
|
|
|
26
26
|
|
|
27
27
|
python函数加速器,框架包罗万象,一统编程思维,兼容50% python编程业务场景,适用范围广。
|
|
28
28
|
python万能分布式函数调度框架,支持5种并发模式,30+种消息队列中间件(或任务队列框架),
|
|
29
|
-
30种任务控制功能。给任意python函数赋能。
|
|
29
|
+
30种任务控制功能。给任意python函数赋能。
|
|
30
30
|
用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
|
|
31
31
|
|
|
32
32
|
框架只需要学习@boost这一个装饰器的入参就可以,所有用法几乎和1.3例子一摸一样,非常简化简单。
|
|
@@ -473,4 +473,4 @@ funboost通过支持celery作为broker_kind,使celer框架变成了funboost的
|
|
|
473
473
|
|
|
474
474
|

|
|
475
475
|
|
|
476
|
-
<div> </div>
|
|
476
|
+
<div> </div>
|
|
@@ -12,6 +12,7 @@ import sys
|
|
|
12
12
|
import typing
|
|
13
13
|
import abc
|
|
14
14
|
import copy
|
|
15
|
+
from apscheduler.jobstores.memory import MemoryJobStore
|
|
15
16
|
from pathlib import Path
|
|
16
17
|
# from multiprocessing import Process
|
|
17
18
|
import datetime
|
|
@@ -367,15 +368,25 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
367
368
|
|
|
368
369
|
def _start_delay_task_scheduler(self):
|
|
369
370
|
from funboost.timing_job import FsdfBackgroundScheduler
|
|
370
|
-
|
|
371
|
-
|
|
372
|
-
|
|
371
|
+
# print(self.consumer_params.delay_task_apsscheduler_jobstores_kind )
|
|
372
|
+
if self.consumer_params.delay_task_apsscheduler_jobstores_kind == 'redis':
|
|
373
|
+
jobstores = {
|
|
374
|
+
"default": RedisJobStore(**redis_manager.get_redis_conn_kwargs(),
|
|
375
|
+
jobs_key=f'funboost.apscheduler.{self.queue_name}.jobs',
|
|
376
|
+
run_times_key=f'funboost.apscheduler.{self.queue_name}.run_times',
|
|
377
|
+
)
|
|
378
|
+
}
|
|
379
|
+
elif self.consumer_params.delay_task_apsscheduler_jobstores_kind == 'memory':
|
|
380
|
+
jobstores = {"default": MemoryJobStore()}
|
|
381
|
+
else:
|
|
382
|
+
raise Exception(f'delay_task_apsscheduler_jobstores_kind is error: {self.consumer_params.delay_task_apsscheduler_jobstores_kind}')
|
|
373
383
|
self._delay_task_scheduler = FsdfBackgroundScheduler(timezone=FunboostCommonConfig.TIMEZONE, daemon=False,
|
|
374
384
|
jobstores=jobstores # push 方法的序列化带thredignn.lock
|
|
375
385
|
)
|
|
376
386
|
self._delay_task_scheduler.add_executor(ApschedulerThreadPoolExecutor(2)) # 只是运行submit任务到并发池,不需要很多线程。
|
|
377
387
|
# self._delay_task_scheduler.add_listener(self._apscheduler_job_miss, EVENT_JOB_MISSED)
|
|
378
388
|
self._delay_task_scheduler.start()
|
|
389
|
+
|
|
379
390
|
self.logger.warning('启动延时任务sheduler')
|
|
380
391
|
|
|
381
392
|
logger_apscheduler = get_logger('push_for_apscheduler_use_database_store', log_filename='push_for_apscheduler_use_database_store.log')
|
|
@@ -1149,7 +1160,6 @@ class DistributedConsumerStatistics(RedisMixin, FunboostFileLoggerMixin):
|
|
|
1149
1160
|
if HEARBEAT_EXPIRE_SECOND < SEND_HEARTBEAT_INTERVAL * 2:
|
|
1150
1161
|
raise ValueError(f'HEARBEAT_EXPIRE_SECOND:{HEARBEAT_EXPIRE_SECOND} , SEND_HEARTBEAT_INTERVAL:{SEND_HEARTBEAT_INTERVAL} ')
|
|
1151
1162
|
|
|
1152
|
-
|
|
1153
1163
|
def __init__(self, consumer: AbstractConsumer):
|
|
1154
1164
|
# self._consumer_identification = consumer_identification
|
|
1155
1165
|
# self._consumer_identification_map = consumer_identification_map
|
|
@@ -1203,7 +1213,6 @@ class DistributedConsumerStatistics(RedisMixin, FunboostFileLoggerMixin):
|
|
|
1203
1213
|
self._show_active_consumer_num()
|
|
1204
1214
|
self._get_stop_and_pause_flag_from_redis()
|
|
1205
1215
|
|
|
1206
|
-
|
|
1207
1216
|
def _show_active_consumer_num(self):
|
|
1208
1217
|
self.active_consumer_num = self.redis_db_frame.scard(self._redis_key_name) or 1
|
|
1209
1218
|
if time.time() - self._last_show_consumer_num_timestamp > self.SHOW_CONSUMER_NUM_INTERVAL:
|
|
@@ -59,6 +59,14 @@ class Booster:
|
|
|
59
59
|
f.consume()
|
|
60
60
|
# f.multi_process_conusme(8) # # 这个是新加的方法,细粒度 线程 协程并发 同时叠加8个进程,速度炸裂。
|
|
61
61
|
'''
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
@boost('queue_test_f01', qps=0.2, )
|
|
65
|
+
@boost(BoosterParams(queue_name='queue_test_f01', qps=0.2, ))
|
|
66
|
+
@Booster(BoosterParams(queue_name='queue_test_f01', qps=0.2, ))
|
|
67
|
+
@BoosterParams(queue_name='queue_test_f01', qps=0.2, )
|
|
68
|
+
以上4种写法等效。
|
|
69
|
+
@boost(BoosterParams(queue_name='queue_test_f01', qps=0.2, )) 的写法升级到 pycharm 2024.2 版本后,导致被装饰的函数不能自动补全提示了,pycharm升级后自动补全功能反而抽风bug了。
|
|
62
70
|
"""
|
|
63
71
|
|
|
64
72
|
# 以下代码很复杂,主要是兼容老的在@boost直接传参的方式,强烈建议使用新的入参方式,所有入参放在一个 BoosterParams 中,那就不需要理会下面这段逻辑.
|
|
@@ -112,6 +112,9 @@ class FunctionResultStatusPersistanceConfig(BaseJsonAbleModel):
|
|
|
112
112
|
return values
|
|
113
113
|
|
|
114
114
|
|
|
115
|
+
|
|
116
|
+
|
|
117
|
+
|
|
115
118
|
class BoosterParams(BaseJsonAbleModel):
|
|
116
119
|
"""
|
|
117
120
|
pydatinc pycharm编程代码补全,请安装 pydantic插件, 在pycharm的 file -> settings -> Plugins -> 输入 pydantic 搜索,点击安装 pydantic 插件.
|
|
@@ -171,6 +174,8 @@ class BoosterParams(BaseJsonAbleModel):
|
|
|
171
174
|
is_using_rpc_mode: bool = False # 是否使用rpc模式,可以在发布端获取消费端的结果回调,但消耗一定性能,使用async_result.result时候会等待阻塞住当前线程。
|
|
172
175
|
rpc_result_expire_seconds: int = 600 # 保存rpc结果的过期时间.
|
|
173
176
|
|
|
177
|
+
delay_task_apsscheduler_jobstores_kind :typing.Literal[ 'redis', 'memory'] = 'redis' # 延时任务的aspcheduler对象使用哪种jobstores ,可以为 redis memory 两种作为jobstore
|
|
178
|
+
|
|
174
179
|
is_support_remote_kill_task: bool = False # 是否支持远程任务杀死功能,如果任务数量少,单个任务耗时长,确实需要远程发送命令来杀死正在运行的函数,才设置为true,否则不建议开启此功能。(是把函数放在单独的线程中实现的,随时准备线程被远程命令杀死,所以性能会降低)
|
|
175
180
|
|
|
176
181
|
is_do_not_run_by_specify_time_effect: bool = False # 是否使不运行的时间段生效
|
|
@@ -195,9 +200,11 @@ class BoosterParams(BaseJsonAbleModel):
|
|
|
195
200
|
|
|
196
201
|
# func_params_is_pydantic_model: bool = False # funboost 兼容支持 函数娼还是 pydantic model类型,funboost在发布之前和取出来时候自己转化。
|
|
197
202
|
|
|
203
|
+
consuming_function_kind: typing.Optional[str] = None # 自动生成的信息,不需要用户主动传参,如果自动判断失误就传递。是判断消费函数是函数还是实例方法还是类方法
|
|
204
|
+
|
|
198
205
|
auto_generate_info: dict = {} # 自动生成的信息,不需要用户主动传参.
|
|
199
206
|
|
|
200
|
-
|
|
207
|
+
|
|
201
208
|
|
|
202
209
|
@root_validator(skip_on_failure=True)
|
|
203
210
|
def check_values(cls, values: dict):
|
|
@@ -214,7 +221,7 @@ class BoosterParams(BaseJsonAbleModel):
|
|
|
214
221
|
if values['concurrent_mode'] not in ConcurrentModeEnum.__dict__.values():
|
|
215
222
|
raise ValueError('设置的并发模式不正确')
|
|
216
223
|
if values['broker_kind'] in [BrokerEnum.REDIS_ACK_ABLE, BrokerEnum.REDIS_STREAM, BrokerEnum.REDIS_PRIORITY, BrokerEnum.RedisBrpopLpush]:
|
|
217
|
-
values['is_send_consumer_hearbeat_to_redis'] = True
|
|
224
|
+
values['is_send_consumer_hearbeat_to_redis'] = True # 需要心跳进程来辅助判断消息是否属于掉线或关闭的进程,需要重回队列
|
|
218
225
|
# if not set(values.keys()).issubset(set(BoosterParams.__fields__.keys())):
|
|
219
226
|
# raise ValueError(f'{cls.__name__} 的字段包含了父类 BoosterParams 不存在的字段')
|
|
220
227
|
for k in values.keys():
|
|
@@ -224,8 +231,10 @@ class BoosterParams(BaseJsonAbleModel):
|
|
|
224
231
|
|
|
225
232
|
def __call__(self, func):
|
|
226
233
|
"""
|
|
227
|
-
|
|
228
|
-
|
|
234
|
+
新增加一种语法,
|
|
235
|
+
一般是使用@boost(BoosterParams(queue_name='q1',qps=2)),你如果图方便可以使用 @BoosterParams(queue_name='q1',qps=2)这样的写法。
|
|
236
|
+
|
|
237
|
+
@BoosterParams(queue_name='q1',qps=2) 这个和 @boost(BoosterParams(queue_name='q1',qps=2)) 写法等效,
|
|
229
238
|
|
|
230
239
|
@BoosterParams(queue_name='q1',qps=2)
|
|
231
240
|
def f(a,b):
|
|
@@ -263,13 +272,19 @@ class PriorityConsumingControlConfig(BaseJsonAbleModel):
|
|
|
263
272
|
"""
|
|
264
273
|
|
|
265
274
|
function_timeout: typing.Union[float, int] = 0
|
|
275
|
+
|
|
266
276
|
max_retry_times: int = None
|
|
277
|
+
|
|
267
278
|
is_print_detail_exception: bool = None
|
|
279
|
+
|
|
268
280
|
msg_expire_senconds: int = None
|
|
281
|
+
|
|
269
282
|
is_using_rpc_mode: bool = None
|
|
283
|
+
|
|
270
284
|
countdown: typing.Union[float, int] = None
|
|
271
285
|
eta: datetime.datetime = None
|
|
272
286
|
misfire_grace_time: typing.Union[int, None] = None
|
|
287
|
+
|
|
273
288
|
other_extra_params: dict = None # 其他参数, 例如消息优先级 , priority_control_config=PriorityConsumingControlConfig(other_extra_params={'priroty': priorityxx}),
|
|
274
289
|
|
|
275
290
|
@root_validator(skip_on_failure=True)
|
|
@@ -25,6 +25,12 @@ class FunboostLazyImpoter(SingletonBaseNew):
|
|
|
25
25
|
from funboost.core import booster
|
|
26
26
|
return booster.boost
|
|
27
27
|
|
|
28
|
+
@property
|
|
29
|
+
@cached_method_result
|
|
30
|
+
def Booster(self):
|
|
31
|
+
from funboost.core import booster
|
|
32
|
+
return booster.Booster
|
|
33
|
+
|
|
28
34
|
# @property
|
|
29
35
|
# @cached_method_result
|
|
30
36
|
# def get_current_taskid(self):
|
|
@@ -11,7 +11,7 @@ from funboost.timing_job import FunboostBackgroundScheduler
|
|
|
11
11
|
jobstores = {
|
|
12
12
|
"default": RedisJobStore(db=BrokerConnConfig.REDIS_DB, host=BrokerConnConfig.REDIS_HOST,
|
|
13
13
|
port=BrokerConnConfig.REDIS_PORT, password=BrokerConnConfig.REDIS_PASSWORD,
|
|
14
|
-
username=BrokerConnConfig.REDIS_USERNAME)
|
|
14
|
+
username=BrokerConnConfig.REDIS_USERNAME,jobs_key='funboost.apscheduler.jobs')
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
funboost_background_scheduler_redis_store = FunboostBackgroundScheduler(timezone=FunboostCommonConfig.TIMEZONE, daemon=False, jobstores=jobstores)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 46.
|
|
3
|
+
Version: 46.4
|
|
4
4
|
Summary: pip install funboost,python全功能分布式函数调度框架,funboost的功能是全面性重量级,用户能想得到的功能99%全都有;funboost的使用方式是轻量级,只有@boost一行代码需要写。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚
|
|
5
5
|
Home-page: https://github.com/ydf0509/funboost
|
|
6
6
|
Author: bfzs
|
|
@@ -58,7 +58,7 @@ funboost的功能是全面性重量级,用户能想得到的功能99%全都有
|
|
|
58
58
|
|
|
59
59
|
python函数加速器,框架包罗万象,一统编程思维,兼容50% python编程业务场景,适用范围广。
|
|
60
60
|
python万能分布式函数调度框架,支持5种并发模式,30+种消息队列中间件(或任务队列框架),
|
|
61
|
-
30种任务控制功能。给任意python函数赋能。
|
|
61
|
+
30种任务控制功能。给任意python函数赋能。
|
|
62
62
|
用途概念就是常规经典的 生产者 + 消息队列中间件 + 消费者 编程思想。
|
|
63
63
|
|
|
64
64
|
框架只需要学习@boost这一个装饰器的入参就可以,所有用法几乎和1.3例子一摸一样,非常简化简单。
|
|
@@ -507,3 +507,4 @@ funboost通过支持celery作为broker_kind,使celer框架变成了funboost的
|
|
|
507
507
|
|
|
508
508
|
<div> </div>
|
|
509
509
|
|
|
510
|
+
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-46.2 → funboost-46.4}/funboost/beggar_version_implementation/beggar_redis_consumer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/backup/async_pool_executor_janus.py
RENAMED
|
File without changes
|
|
File without changes
|
{funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-46.2 → funboost-46.4}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-46.2 → funboost-46.4}/funboost/factories/broker_kind__publsiher_consumer_type_map.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-46.2 → funboost-46.4}/funboost/function_result_web/__pycache__/functions.cpython-37.pyc
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|