funboost 46.6__tar.gz → 46.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-46.6/funboost.egg-info → funboost-46.7}/PKG-INFO +1 -1
- {funboost-46.6 → funboost-46.7}/funboost/__init__.py +1 -1
- {funboost-46.6 → funboost-46.7}/funboost/consumers/base_consumer.py +14 -4
- {funboost-46.6 → funboost-46.7}/funboost/consumers/rabbitmq_amqpstorm_consumer.py +7 -6
- {funboost-46.6 → funboost-46.7}/funboost/core/booster.py +1 -1
- {funboost-46.6 → funboost-46.7}/funboost/timing_job/__init__.py +31 -3
- {funboost-46.6 → funboost-46.7}/funboost/timing_job/apscheduler_use_mysql_store.py +1 -0
- {funboost-46.6 → funboost-46.7}/funboost/timing_job/apscheduler_use_redis_store.py +2 -2
- {funboost-46.6 → funboost-46.7/funboost.egg-info}/PKG-INFO +1 -1
- {funboost-46.6 → funboost-46.7}/LICENSE +0 -0
- {funboost-46.6 → funboost-46.7}/MANIFEST.in +0 -0
- {funboost-46.6 → funboost-46.7}/README.md +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/__init__old.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/__main__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/assist/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/assist/celery_helper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/assist/dramatiq_helper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/assist/faststream_helper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/assist/huey_helper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/assist/rocketry_helper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/assist/rq_helper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/assist/rq_windows_worker.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/assist/taskiq_helper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/beggar_version_implementation/beggar_redis_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/async_helper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/async_pool_executor.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/backup/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/backup/async_pool_executor0223.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/backup/async_pool_executor_back.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/backup/async_pool_executor_janus.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/base_pool_type.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/bounded_processpoolexcutor_py36.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/bounded_threadpoolexcutor.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/custom_evenlet_pool_executor.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/custom_gevent_pool_executor.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/custom_threadpool_executor.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/custom_threadpool_executor000.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/fixed_thread_pool.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/flexible_thread_pool.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/pool_commons.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/single_thread_executor.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/constant.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/celery_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/confirm_mixin.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/dramatiq_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/empty_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/faststream_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/http_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/http_consumer000.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/httpsqs_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/huey_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/kafka_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/kafka_consumer_manually_commit.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/kombu_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/local_python_queue_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/memory_deque_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/mongomq_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/mqtt_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/nameko_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/nats_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/nsq_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/peewee_conusmer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/persist_queue_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/pulsar_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/rabbitmq_pika_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/rabbitmq_pika_consumerv0.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/rabbitmq_rabbitpy_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/redis_brpoplpush_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/redis_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/redis_consumer_ack_able.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/redis_consumer_ack_using_timeout.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/redis_consumer_priority.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/redis_consumer_simple.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/redis_filter.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/redis_pubsub_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/redis_stream_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/rocketmq_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/rq_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/sqlachemy_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/tcp_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/txt_file_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/udp_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/consumers/zeromq_consumer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/contrib/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/contrib/api_publish_msg.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/contrib/django_db_deco.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/contrib/queue2queue.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/contrib/redis_consume_latest_msg_broker.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/contrib/save_result_status_to_sqldb.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/active_cousumer_info_getter.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/cli/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/cli/discovery_boosters.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/cli/funboost_cli_user_templ.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/cli/funboost_fire.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/current_task.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/exceptions.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/fabric_deploy_helper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/funboost_config_getter.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/funboost_time.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/func_params_model.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/function_result_status_config.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/function_result_status_saver.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/helper_funs.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/kill_remote_task.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/lazy_impoter.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/loggers.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/msg_result_getter.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/muliti_process_enhance.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/serialization.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/core/task_id_logger.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/factories/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/factories/broker_kind__publsiher_consumer_type_map.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/factories/consumer_factory.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/factories/publisher_factotry.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/funboost_config_deafult.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/__pycache__/functions.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/app.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/functions.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/assets/css/custom.css +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/assets/css/jquery.mCustomScrollbar.min.css +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/assets/img/user.jpg +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/assets/js/custom.js +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/assets/js/jquery.mCustomScrollbar.concat.min.js +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/css/style.css +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/images/bg.jpg +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/images/password.png +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/images/tick.png +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/images/user.png +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/static/js/jquery-1.11.0.min.js +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/templates/index.html +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/function_result_web/templates/login.html +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/base_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/celery_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/celery_publisher000.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/confluent_kafka_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/dramatiq_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/empty_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/faststream_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/http_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/httpsqs_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/huey_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/kafka_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/kombu_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/local_python_queue_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/meomory_deque_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/mongomq_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/mqtt_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/nameko_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/nats_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/nsq_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/peewee_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/persist_queue_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/pulsar_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/rabbitmq_amqpstorm_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/rabbitmq_pika_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/rabbitmq_rabbitpy_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/redis_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/redis_publisher_lpush.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/redis_publisher_priority.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/redis_publisher_simple.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/redis_pubsub_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/redis_queue_flush_mixin.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/redis_stream_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/rocketmq_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/rq_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/sqla_queue_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/tcp_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/txt_file_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/udp_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/publishers/zeromq_publisher.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/queues/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/queues/memory_queues_map.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/queues/peewee_queue.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/queues/sqla_queue.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/set_frame_config.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/apscheduler_monkey.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/block_exit.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/bulk_operation.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/class_utils.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/ctrl_c_end.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/custom_pysnooper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/decorators.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages/mongomq/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages/mongomq/lock.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages/mongomq/mongomq.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages/mongomq/mongomq0000.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages/mongomq/test.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages/mongomq/utils.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/client.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/compat.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/connection.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/StoppableThread.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-311.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-37.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-39.pyc +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc2222.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/exceptions.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py2_raise.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py3_raise.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/develop_log.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/expire_lock.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/json_helper.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/mongo_util.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/monkey_color_log.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/monkey_patches.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/mqtt_util.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/paramiko_util.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/pysnooper_ydf/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/pysnooper_ydf/pycompat.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/pysnooper_ydf/tracer.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/pysnooper_ydf/utils.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/pysnooper_ydf/variables.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/rabbitmq_factory.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/redis_manager.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/redis_manager_old.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/resource_monitoring.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/restart_python.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/simple_data_class.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/str_utils.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/time_util.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/times/__init__.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/times/version.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost/utils/un_strict_json_dumps.py +0 -0
- {funboost-46.6 → funboost-46.7}/funboost.egg-info/SOURCES.txt +0 -0
- {funboost-46.6 → funboost-46.7}/funboost.egg-info/dependency_links.txt +0 -0
- {funboost-46.6 → funboost-46.7}/funboost.egg-info/entry_points.txt +0 -0
- {funboost-46.6 → funboost-46.7}/funboost.egg-info/requires.txt +0 -0
- {funboost-46.6 → funboost-46.7}/funboost.egg-info/top_level.txt +0 -0
- {funboost-46.6 → funboost-46.7}/setup.cfg +0 -0
- {funboost-46.6 → funboost-46.7}/setup.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 46.
|
|
3
|
+
Version: 46.7
|
|
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
|
|
@@ -40,6 +40,7 @@ from funboost.core.serialization import Serialization
|
|
|
40
40
|
from funboost.core.task_id_logger import TaskIdLogger
|
|
41
41
|
from funboost.constant import FunctionKind
|
|
42
42
|
|
|
43
|
+
|
|
43
44
|
from nb_libs.path_helper import PathHelper
|
|
44
45
|
from nb_log import (get_logger, LoggerLevelSetterMixin, LogManager, is_main_process,
|
|
45
46
|
nb_log_config_default)
|
|
@@ -368,6 +369,7 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
368
369
|
|
|
369
370
|
def _start_delay_task_scheduler(self):
|
|
370
371
|
from funboost.timing_job import FsdfBackgroundScheduler
|
|
372
|
+
from funboost.timing_job import FunboostBackgroundSchedulerProcessJobsWithinRedisLock
|
|
371
373
|
# print(self.consumer_params.delay_task_apsscheduler_jobstores_kind )
|
|
372
374
|
if self.consumer_params.delay_task_apscheduler_jobstores_kind == 'redis':
|
|
373
375
|
jobstores = {
|
|
@@ -376,13 +378,20 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
376
378
|
run_times_key=f'funboost.apscheduler.{self.queue_name}.run_times',
|
|
377
379
|
)
|
|
378
380
|
}
|
|
381
|
+
self._delay_task_scheduler = FunboostBackgroundSchedulerProcessJobsWithinRedisLock(timezone=FunboostCommonConfig.TIMEZONE, daemon=False,
|
|
382
|
+
jobstores=jobstores # push 方法的序列化带thredignn.lock
|
|
383
|
+
)
|
|
384
|
+
self._delay_task_scheduler.set_process_jobs_redis_lock_key(f'funboost.BackgroundSchedulerProcessJobsWithinRedisLock.{self.queue_name}')
|
|
379
385
|
elif self.consumer_params.delay_task_apscheduler_jobstores_kind == 'memory':
|
|
380
386
|
jobstores = {"default": MemoryJobStore()}
|
|
387
|
+
self._delay_task_scheduler = FsdfBackgroundScheduler(timezone=FunboostCommonConfig.TIMEZONE, daemon=False,
|
|
388
|
+
jobstores=jobstores # push 方法的序列化带thredignn.lock
|
|
389
|
+
)
|
|
390
|
+
|
|
381
391
|
else:
|
|
382
392
|
raise Exception(f'delay_task_apsscheduler_jobstores_kind is error: {self.consumer_params.delay_task_apscheduler_jobstores_kind}')
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
)
|
|
393
|
+
|
|
394
|
+
|
|
386
395
|
self._delay_task_scheduler.add_executor(ApschedulerThreadPoolExecutor(2)) # 只是运行submit任务到并发池,不需要很多线程。
|
|
387
396
|
# self._delay_task_scheduler.add_listener(self._apscheduler_job_miss, EVENT_JOB_MISSED)
|
|
388
397
|
self._delay_task_scheduler.start()
|
|
@@ -500,7 +509,8 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
500
509
|
# 数据库作为apscheduler的jobstores时候, 不能用 self.pbulisher_of_same_queue.publish,self不能序列化
|
|
501
510
|
self._delay_task_scheduler.add_job(self._push_for_apscheduler_use_database_store, 'date', run_date=run_date,
|
|
502
511
|
kwargs={'queue_name': self.queue_name, 'msg': msg_no_delay, 'runonce_uuid': str(uuid.uuid4())},
|
|
503
|
-
misfire_grace_time=misfire_grace_time
|
|
512
|
+
misfire_grace_time=misfire_grace_time,
|
|
513
|
+
)
|
|
504
514
|
self._confirm_consume(kw)
|
|
505
515
|
|
|
506
516
|
else: # 普通任务
|
|
@@ -14,7 +14,7 @@ class RabbitmqConsumerAmqpStorm(AbstractConsumer):
|
|
|
14
14
|
使用AmqpStorm实现的,多线程安全的,不用加锁。
|
|
15
15
|
funboost 强烈推荐使用这个做消息队列中间件。
|
|
16
16
|
"""
|
|
17
|
-
BROKER_EXCLUSIVE_CONFIG_DEFAULT = {'x-max-priority': None} # x-max-priority 是 rabbitmq的优先级队列配置,必须为整数,强烈建议要小于5。为None就代表队列不支持优先级。
|
|
17
|
+
BROKER_EXCLUSIVE_CONFIG_DEFAULT = {'x-max-priority': None,'no_ack':False} # x-max-priority 是 rabbitmq的优先级队列配置,必须为整数,强烈建议要小于5。为None就代表队列不支持优先级。
|
|
18
18
|
|
|
19
19
|
def _shedual_task(self):
|
|
20
20
|
# noinspection PyTypeChecker
|
|
@@ -28,16 +28,17 @@ class RabbitmqConsumerAmqpStorm(AbstractConsumer):
|
|
|
28
28
|
broker_exclusive_config=self.consumer_params.broker_exclusive_config))
|
|
29
29
|
rp.init_broker()
|
|
30
30
|
rp.channel_wrapper_by_ampqstormbaic.qos(self.consumer_params.concurrent_num)
|
|
31
|
-
rp.channel_wrapper_by_ampqstormbaic.consume(callback=callback, queue=self.queue_name, no_ack=
|
|
31
|
+
rp.channel_wrapper_by_ampqstormbaic.consume(callback=callback, queue=self.queue_name, no_ack=self.consumer_params.broker_exclusive_config['no_ack'],
|
|
32
32
|
)
|
|
33
33
|
rp.channel.start_consuming(auto_decode=True)
|
|
34
34
|
|
|
35
35
|
def _confirm_consume(self, kw):
|
|
36
36
|
# noinspection PyBroadException
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
37
|
+
if self.consumer_params.broker_exclusive_config['no_ack'] is False:
|
|
38
|
+
try:
|
|
39
|
+
kw['amqpstorm_message'].ack() # 确认消费
|
|
40
|
+
except BaseException as e:
|
|
41
|
+
self.logger.error(f'AmqpStorm确认消费失败 {type(e)} {e}')
|
|
41
42
|
|
|
42
43
|
def _requeue(self, kw):
|
|
43
44
|
# amqpstorm.Message.delivery_tag
|
|
@@ -206,7 +206,7 @@ class Booster:
|
|
|
206
206
|
fabric_deploy(self, **params)
|
|
207
207
|
|
|
208
208
|
|
|
209
|
-
boost = Booster
|
|
209
|
+
boost = Booster # @boost 后消费函数. 不能自动补全方法就用 Booster就可以。 2024版本的 pycharm抽风了,@boost的消费函数不能自动补全提示 .consume .push 这些方法。
|
|
210
210
|
task_deco = boost # 两个装饰器名字都可以。task_deco是原来名字,兼容一下。
|
|
211
211
|
|
|
212
212
|
|
|
@@ -8,6 +8,7 @@ import importlib
|
|
|
8
8
|
import pickle
|
|
9
9
|
|
|
10
10
|
import time
|
|
11
|
+
from funboost.utils.decorators import RedisDistributedLockContextManager
|
|
11
12
|
from typing import Union
|
|
12
13
|
import threading
|
|
13
14
|
|
|
@@ -15,7 +16,7 @@ from apscheduler.schedulers.background import BackgroundScheduler
|
|
|
15
16
|
from apscheduler.jobstores.redis import RedisJobStore
|
|
16
17
|
# noinspection PyProtectedMember
|
|
17
18
|
from apscheduler.schedulers.base import STATE_STOPPED, STATE_RUNNING
|
|
18
|
-
from apscheduler.util import undefined
|
|
19
|
+
from apscheduler.util import undefined,TIMEOUT_MAX
|
|
19
20
|
import deprecated
|
|
20
21
|
from funboost.utils.redis_manager import RedisMixin
|
|
21
22
|
|
|
@@ -60,6 +61,9 @@ class FunboostBackgroundScheduler(BackgroundScheduler):
|
|
|
60
61
|
通过重写 _main_loop ,使得动态修改增加删除定时任务配置更好。
|
|
61
62
|
"""
|
|
62
63
|
|
|
64
|
+
_last_wait_seconds = None
|
|
65
|
+
_last_has_task = False
|
|
66
|
+
|
|
63
67
|
@deprecated.deprecated(reason='以后不要再使用这种方式,对于job_store为数据库时候需要序列化不好。使用内存和数据库都兼容的添加任务方式: add_push_job')
|
|
64
68
|
def add_timing_publish_job(self, func, trigger=None, args=None, kwargs=None, id=None, name=None,
|
|
65
69
|
misfire_grace_time=undefined, coalesce=undefined, max_instances=undefined,
|
|
@@ -146,15 +150,39 @@ class FunboostBackgroundScheduler(BackgroundScheduler):
|
|
|
146
150
|
或者下一个需要运行的任务的wait_seconds是3600秒后,此时新加了一个动态任务需要3600秒后,
|
|
147
151
|
现在最多只需要1秒就能扫描到动态新增的定时任务了。
|
|
148
152
|
"""
|
|
149
|
-
MAX_WAIT_SECONDS_FOR_NEX_PROCESS_JOBS = 1
|
|
153
|
+
MAX_WAIT_SECONDS_FOR_NEX_PROCESS_JOBS = 1.5
|
|
150
154
|
wait_seconds = None
|
|
151
155
|
while self.state == STATE_RUNNING:
|
|
152
156
|
if wait_seconds is None:
|
|
153
157
|
wait_seconds = MAX_WAIT_SECONDS_FOR_NEX_PROCESS_JOBS
|
|
154
|
-
|
|
158
|
+
self._last_wait_seconds = min(wait_seconds, MAX_WAIT_SECONDS_FOR_NEX_PROCESS_JOBS)
|
|
159
|
+
if wait_seconds in (None,TIMEOUT_MAX):
|
|
160
|
+
self._last_has_task = False
|
|
161
|
+
else:
|
|
162
|
+
self._last_has_task = True
|
|
163
|
+
time.sleep(self._last_wait_seconds) # 这个要取最小值,不然例如定时间隔0.1秒运行,不取最小值,不会每隔0.1秒运行。
|
|
155
164
|
wait_seconds = self._process_jobs()
|
|
156
165
|
|
|
157
166
|
|
|
167
|
+
class FunboostBackgroundSchedulerProcessJobsWithinRedisLock(FunboostBackgroundScheduler):
|
|
168
|
+
process_jobs_redis_lock_key = f'funboost.BackgroundSchedulerProcessJobsWithinRedisLock'
|
|
169
|
+
|
|
170
|
+
def set_process_jobs_redis_lock_key(self,lock_key):
|
|
171
|
+
self.process_jobs_redis_lock_key = lock_key
|
|
172
|
+
|
|
173
|
+
def _process_jobs(self):
|
|
174
|
+
for i in range(10) :
|
|
175
|
+
with RedisDistributedLockContextManager(RedisMixin().redis_db_frame, self.process_jobs_redis_lock_key, ) as lock:
|
|
176
|
+
if lock.has_aquire_lock:
|
|
177
|
+
wait_seconds = super()._process_jobs()
|
|
178
|
+
return wait_seconds
|
|
179
|
+
else:
|
|
180
|
+
time.sleep(0.1)
|
|
181
|
+
return 0.1
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
|
|
158
186
|
FsdfBackgroundScheduler = FunboostBackgroundScheduler # 兼容一下名字,fsdf是 function-scheduling-distributed-framework 老框架名字的缩写
|
|
159
187
|
# funboost_aps_scheduler定时配置基于内存的,不可以跨机器远程动态添加/修改/删除定时任务配置。如果需要动态增删改查定时任务,可以使用funboost_background_scheduler_redis_store
|
|
160
188
|
|
|
@@ -2,7 +2,7 @@ from apscheduler.jobstores.redis import RedisJobStore
|
|
|
2
2
|
|
|
3
3
|
from funboost.funboost_config_deafult import BrokerConnConfig,FunboostCommonConfig
|
|
4
4
|
|
|
5
|
-
from funboost.timing_job import
|
|
5
|
+
from funboost.timing_job import FunboostBackgroundSchedulerProcessJobsWithinRedisLock
|
|
6
6
|
|
|
7
7
|
"""
|
|
8
8
|
这个是使用redis作为定时任务持久化,支持动态修改/添加/删除定时任务
|
|
@@ -14,7 +14,7 @@ jobstores = {
|
|
|
14
14
|
username=BrokerConnConfig.REDIS_USERNAME,jobs_key='funboost.apscheduler.jobs')
|
|
15
15
|
}
|
|
16
16
|
|
|
17
|
-
funboost_background_scheduler_redis_store =
|
|
17
|
+
funboost_background_scheduler_redis_store = FunboostBackgroundSchedulerProcessJobsWithinRedisLock(timezone=FunboostCommonConfig.TIMEZONE, daemon=False, jobstores=jobstores)
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 46.
|
|
3
|
+
Version: 46.7
|
|
4
4
|
Summary: pip install funboost,python全功能分布式函数调度框架,funboost的功能是全面性重量级,用户能想得到的功能99%全都有;funboost的使用方式是轻量级,只有@boost一行代码需要写。支持python所有类型的并发模式和一切知名消息队列中间件,支持如 celery dramatiq等框架整体作为funboost中间件,python函数加速器,框架包罗万象,用户能想到的控制功能全都有。一统编程思维,兼容50% python业务场景,适用范围广。只需要一行代码即可分布式执行python一切函数,99%用过funboost的pythoner 感受是 简易 方便 强劲 强大,相见恨晚
|
|
5
5
|
Home-page: https://github.com/ydf0509/funboost
|
|
6
6
|
Author: bfzs
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.6 → funboost-46.7}/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.6 → funboost-46.7}/funboost/concurrent_pool/backup/async_pool_executor_janus.py
RENAMED
|
File without changes
|
|
File without changes
|
{funboost-46.6 → funboost-46.7}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-46.6 → funboost-46.7}/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
|
|
File without changes
|
{funboost-46.6 → funboost-46.7}/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.6 → funboost-46.7}/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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|