funboost 43.6__tar.gz → 43.8__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-43.6/funboost.egg-info → funboost-43.8}/PKG-INFO +1 -1
- {funboost-43.6 → funboost-43.8}/funboost/__init__.py +1 -1
- {funboost-43.6 → funboost-43.8}/funboost/core/booster.py +3 -1
- {funboost-43.6 → funboost-43.8}/funboost/core/fabric_deploy_helper.py +12 -15
- {funboost-43.6 → funboost-43.8}/funboost/core/lazy_impoter.py +14 -0
- {funboost-43.6 → funboost-43.8}/funboost/queues/peewee_queue.py +13 -13
- {funboost-43.6 → funboost-43.8}/funboost/utils/paramiko_util.py +7 -2
- {funboost-43.6 → funboost-43.8/funboost.egg-info}/PKG-INFO +1 -1
- {funboost-43.6 → funboost-43.8}/funboost.egg-info/requires.txt +0 -1
- {funboost-43.6 → funboost-43.8}/setup.py +1 -1
- {funboost-43.6 → funboost-43.8}/LICENSE +0 -0
- {funboost-43.6 → funboost-43.8}/MANIFEST.in +0 -0
- {funboost-43.6 → funboost-43.8}/README.md +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/__init__old.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/__main__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/assist/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/assist/celery_helper.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/assist/dramatiq_helper.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/assist/huey_helper.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/assist/rocketry_helper.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/assist/rq_helper.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/assist/rq_windows_worker.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/beggar_version_implementation/beggar_redis_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/async_helper.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/async_pool_executor.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/backup/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/backup/async_pool_executor0223.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/backup/async_pool_executor_back.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/backup/async_pool_executor_janus.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/base_pool_type.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/bounded_processpoolexcutor_py36.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/bounded_threadpoolexcutor.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/custom_evenlet_pool_executor.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/custom_gevent_pool_executor.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/custom_threadpool_executor.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/custom_threadpool_executor000.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/fixed_thread_pool.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/flexible_thread_pool.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/pool_commons.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/single_thread_executor.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/constant.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/base_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/celery_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/confirm_mixin.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/dramatiq_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/http_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/http_consumer000.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/httpsqs_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/huey_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/kafka_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/kafka_consumer_manually_commit.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/kombu_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/local_python_queue_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/memory_deque_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/mongomq_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/mqtt_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/nameko_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/nats_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/nsq_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/peewee_conusmer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/persist_queue_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/pulsar_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/rabbitmq_amqpstorm_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/rabbitmq_pika_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/rabbitmq_pika_consumerv0.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/rabbitmq_rabbitpy_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/redis_brpoplpush_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/redis_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/redis_consumer_ack_able.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/redis_consumer_priority.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/redis_consumer_simple.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/redis_filter.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/redis_pubsub_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/redis_stream_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/rocketmq_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/rq_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/sqlachemy_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/tcp_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/txt_file_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/udp_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/consumers/zeromq_consumer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/contrib/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/contrib/api_publish_msg.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/contrib/django_db_deco.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/contrib/queue2queue.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/contrib/redis_consume_latest_msg_broker.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/contrib/save_result_status_to_sqldb.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/active_cousumer_info_getter.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/cli/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/cli/discovery_boosters.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/cli/funboost_cli_user_templ.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/cli/funboost_fire.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/current_task.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/exceptions.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/func_params_model.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/function_result_status_config.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/function_result_status_saver.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/helper_funs.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/kill_remote_task.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/loggers.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/msg_result_getter.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/muliti_process_enhance.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/task_id_logger.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/core/try_get_user_funboost_common_config.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/factories/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/factories/broker_kind__publsiher_consumer_type_map.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/factories/consumer_factory.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/factories/publisher_factotry.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/funboost_config_deafult.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/__pycache__/functions.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/app.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/functions.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/assets/css/custom.css +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/assets/css/jquery.mCustomScrollbar.min.css +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/assets/img/user.jpg +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/assets/js/custom.js +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/assets/js/jquery.mCustomScrollbar.concat.min.js +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/css/style.css +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/images/bg.jpg +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/images/password.png +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/images/tick.png +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/images/user.png +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/static/js/jquery-1.11.0.min.js +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/templates/index.html +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/function_result_web/templates/login.html +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/base_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/celery_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/celery_publisher000.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/confluent_kafka_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/dramatiq_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/http_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/httpsqs_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/huey_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/kafka_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/kombu_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/local_python_queue_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/meomory_deque_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/mongomq_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/mqtt_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/nameko_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/nats_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/nsq_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/peewee_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/persist_queue_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/pulsar_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/rabbitmq_amqpstorm_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/rabbitmq_pika_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/rabbitmq_rabbitpy_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/redis_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/redis_publisher_lpush.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/redis_publisher_priority.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/redis_publisher_simple.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/redis_pubsub_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/redis_queue_flush_mixin.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/redis_stream_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/rocketmq_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/rq_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/sqla_queue_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/tcp_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/txt_file_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/udp_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/publishers/zeromq_publisher.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/queues/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/queues/sqla_queue.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/set_frame_config.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/timing_job/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/timing_job/apscheduler_use_mysql_store.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/timing_job/apscheduler_use_redis_store.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/apscheduler_monkey.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/block_exit.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/bulk_operation.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/ctrl_c_end.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/custom_pysnooper.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/decorators.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages/mongomq/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages/mongomq/lock.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages/mongomq/mongomq.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages/mongomq/mongomq0000.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages/mongomq/test.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages/mongomq/utils.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/client.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/compat.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/connection.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/StoppableThread.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-311.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-37.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-39.pyc +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/exceptions.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py2_raise.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py3_raise.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/develop_log.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/expire_lock.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/json_helper.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/mongo_util.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/monkey_color_log.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/monkey_patches.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/mqtt_util.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/pysnooper_ydf/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/pysnooper_ydf/pycompat.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/pysnooper_ydf/tracer.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/pysnooper_ydf/utils.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/pysnooper_ydf/variables.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/rabbitmq_factory.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/redis_manager.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/redis_manager_old.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/resource_monitoring.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/restart_python.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/simple_data_class.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/time_util.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/times/__init__.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/times/version.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost/utils/un_strict_json_dumps.py +0 -0
- {funboost-43.6 → funboost-43.8}/funboost.egg-info/SOURCES.txt +0 -0
- {funboost-43.6 → funboost-43.8}/funboost.egg-info/dependency_links.txt +0 -0
- {funboost-43.6 → funboost-43.8}/funboost.egg-info/entry_points.txt +0 -0
- {funboost-43.6 → funboost-43.8}/funboost.egg-info/top_level.txt +0 -0
- {funboost-43.6 → funboost-43.8}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 43.
|
|
3
|
+
Version: 43.8
|
|
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
|
|
@@ -155,7 +155,9 @@ class Booster:
|
|
|
155
155
|
file_volume_limit=1000 * 1000, sftp_log_level=20, extra_shell_str='',
|
|
156
156
|
invoke_runner_kwargs={'hide': None, 'pty': True, 'warn': False},
|
|
157
157
|
python_interpreter='python3',
|
|
158
|
-
process_num=1
|
|
158
|
+
process_num=1,
|
|
159
|
+
pkey_file_path=None,
|
|
160
|
+
):
|
|
159
161
|
"""
|
|
160
162
|
入参见 fabric_deploy 函数。这里重复入参是为了代码在pycharm补全提示。
|
|
161
163
|
"""
|
|
@@ -1,17 +1,12 @@
|
|
|
1
1
|
# noinspection PyDefaultArgument
|
|
2
|
-
import re
|
|
3
2
|
import sys
|
|
4
3
|
import threading
|
|
5
4
|
import time
|
|
6
|
-
import os
|
|
7
|
-
import typing
|
|
8
5
|
from pathlib import Path
|
|
9
6
|
from fabric2 import Connection
|
|
10
7
|
from nb_libs.path_helper import PathHelper
|
|
11
|
-
# from funboost.core.booster import Booster
|
|
12
8
|
from funboost.utils.paramiko_util import ParamikoFolderUploader
|
|
13
9
|
|
|
14
|
-
# import nb_log
|
|
15
10
|
from funboost.core.loggers import get_funboost_file_logger
|
|
16
11
|
from funboost.core.booster import Booster
|
|
17
12
|
|
|
@@ -19,9 +14,6 @@ logger = get_funboost_file_logger(__name__)
|
|
|
19
14
|
|
|
20
15
|
|
|
21
16
|
# noinspection PyDefaultArgument
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
17
|
def fabric_deploy(booster: Booster, host, port, user, password,
|
|
26
18
|
path_pattern_exluded_tuple=('/.git/', '/.idea/', '/dist/', '/build/'),
|
|
27
19
|
file_suffix_tuple_exluded=('.pyc', '.log', '.gz'),
|
|
@@ -29,7 +21,9 @@ def fabric_deploy(booster: Booster, host, port, user, password,
|
|
|
29
21
|
file_volume_limit=1000 * 1000, sftp_log_level=20, extra_shell_str='',
|
|
30
22
|
invoke_runner_kwargs={'hide': None, 'pty': True, 'warn': False},
|
|
31
23
|
python_interpreter='python3',
|
|
32
|
-
process_num=1
|
|
24
|
+
process_num=1,
|
|
25
|
+
pkey_file_path=None,
|
|
26
|
+
):
|
|
33
27
|
"""
|
|
34
28
|
不依赖阿里云codepipeline 和任何运维发布管理工具,只需要在python代码层面就能实现多机器远程部署。
|
|
35
29
|
这实现了函数级别的精确部署,而非是部署一个 .py的代码,远程部署一个函数实现难度比远程部署一个脚本更高一点,部署更灵活。
|
|
@@ -65,27 +59,30 @@ def fabric_deploy(booster: Booster, host, port, user, password,
|
|
|
65
59
|
pty 的意思是,远程机器的部署的代码进程是否随着当前脚本的结束而结束。如果为True,本机代码结束远程进程就会结束。如果为False,即使本机代码被关闭结束,远程机器还在运行代码。
|
|
66
60
|
warn 的意思是如果远程机器控制台返回了异常码本机代码是否立即退出。warn为True这只是警告一下,warn为False,远程机器返回异常code码则本机代码直接终止退出。
|
|
67
61
|
:param process_num:启动几个进程,要达到最大cpu性能就开启cpu核数个进程就可以了。每个进程内部都有任务函数本身指定的并发方式和并发数量,所以是多进程+线程/协程。
|
|
62
|
+
:param pkey_file_path: 私钥文件路径,如果设置了这个参数,则使用ssh私钥登录远程机器,如果没设置,则使用密码登录。
|
|
68
63
|
:return:
|
|
69
64
|
|
|
70
65
|
|
|
71
66
|
task_fun.fabric_deploy('192.168.6.133', 22, 'ydf', '123456', process_num=2) 只需要这样就可以自动部署在远程机器运行,无需任何额外操作。
|
|
72
67
|
"""
|
|
73
68
|
# print(locals())
|
|
74
|
-
python_proj_dir = sys.path[1].
|
|
69
|
+
python_proj_dir = Path(sys.path[1]).resolve().as_posix() + '/'
|
|
75
70
|
python_proj_dir_short = python_proj_dir.split('/')[-2]
|
|
76
71
|
# 获取被调用函数所在模块文件名
|
|
77
|
-
file_name = sys._getframe(2).f_code.co_filename.
|
|
72
|
+
file_name = Path(sys._getframe(2).f_code.co_filename).resolve().as_posix() # noqa
|
|
78
73
|
relative_file_name = Path(file_name).relative_to(Path(python_proj_dir)).as_posix()
|
|
79
74
|
relative_module = relative_file_name.replace('/', '.')[:-3] # -3是去掉.py
|
|
80
75
|
func_name = booster.consuming_function.__name__
|
|
81
|
-
module_obj = PathHelper(sys._getframe(2).f_code.co_filename).import_as_module() # noqa
|
|
82
76
|
|
|
83
|
-
"""以下这种是为了兼容 函数没有@boost
|
|
77
|
+
"""以下这种是为了兼容 函数没有@boost,而是使用 boosterxx = BoostersManager.build_booster() 来创建的booster. 下面的 python_exec_str 中需要用到 func_name
|
|
78
|
+
也可以远程时候使用 BoostersManager.get_booster(queue_name),然后启动消费. 因为import模块后,就注册booster信息到BoostersManager,所以能启动了.
|
|
79
|
+
"""
|
|
80
|
+
module_obj = PathHelper(sys._getframe(2).f_code.co_filename).import_as_module() # noqa
|
|
84
81
|
for var_name,var_value in module_obj.__dict__.items():
|
|
85
82
|
if isinstance(var_value,Booster) and var_value.queue_name == booster.queue_name:
|
|
86
83
|
func_name = var_name
|
|
87
84
|
|
|
88
|
-
|
|
85
|
+
logger.debug([file_name, python_proj_dir, python_proj_dir_short,relative_module, func_name])
|
|
89
86
|
# print(relative_module)
|
|
90
87
|
if user == 'root': # 文件夹会被自动创建,无需用户创建。
|
|
91
88
|
remote_dir = f'/codes/{python_proj_dir_short}'
|
|
@@ -97,7 +94,7 @@ def fabric_deploy(booster: Booster, host, port, user, password,
|
|
|
97
94
|
t_start = time.perf_counter()
|
|
98
95
|
uploader = ParamikoFolderUploader(host, port, user, password, python_proj_dir, remote_dir,
|
|
99
96
|
path_pattern_exluded_tuple, file_suffix_tuple_exluded,
|
|
100
|
-
only_upload_within_the_last_modify_time, file_volume_limit, sftp_log_level)
|
|
97
|
+
only_upload_within_the_last_modify_time, file_volume_limit, sftp_log_level, pkey_file_path)
|
|
101
98
|
uploader.upload()
|
|
102
99
|
logger.info(f'上传 本地文件夹代码 {python_proj_dir} 上传到远程 {host} 的 {remote_dir} 文件夹耗时 {round(time.perf_counter() - t_start, 3)} 秒')
|
|
103
100
|
# conn.run(f'''export PYTHONPATH={remote_dir}:$PYTHONPATH''')
|
|
@@ -79,6 +79,20 @@ class EventletImporter:
|
|
|
79
79
|
self.patcher = patcher
|
|
80
80
|
self.Timeout = Timeout
|
|
81
81
|
|
|
82
|
+
@singleton
|
|
83
|
+
class PeeweeImporter:
|
|
84
|
+
def __init__(self):
|
|
85
|
+
'''pip install peewee == 3.17'''
|
|
86
|
+
from peewee import ModelSelect, Model, BigAutoField, CharField, DateTimeField, MySQLDatabase
|
|
87
|
+
from playhouse.shortcuts import model_to_dict, dict_to_model
|
|
88
|
+
self.ModelSelect = ModelSelect
|
|
89
|
+
self.Model = Model
|
|
90
|
+
self.BigAutoField = BigAutoField
|
|
91
|
+
self.CharField = CharField
|
|
92
|
+
self.DateTimeField =DateTimeField
|
|
93
|
+
self.MySQLDatabase = MySQLDatabase
|
|
94
|
+
self.model_to_dict = model_to_dict
|
|
95
|
+
self.dict_to_model =dict_to_model
|
|
82
96
|
|
|
83
97
|
if __name__ == '__main__':
|
|
84
98
|
for i in range(10000):
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import datetime
|
|
2
2
|
import time
|
|
3
|
-
|
|
4
|
-
from peewee import ModelSelect
|
|
5
|
-
from playhouse.shortcuts import model_to_dict, dict_to_model
|
|
3
|
+
#
|
|
4
|
+
# from peewee import ModelSelect, Model, BigAutoField, CharField, DateTimeField, MySQLDatabase
|
|
5
|
+
# from playhouse.shortcuts import model_to_dict, dict_to_model
|
|
6
6
|
|
|
7
7
|
# from nb_log import LoggerMixin, LoggerLevelSetterMixin
|
|
8
8
|
from funboost.core.loggers import LoggerLevelSetterMixin,FunboostFileLoggerMixin
|
|
9
9
|
from funboost.funboost_config_deafult import BrokerConnConfig
|
|
10
|
-
from peewee import *
|
|
11
|
-
|
|
10
|
+
# from peewee import *
|
|
11
|
+
from funboost.core.lazy_impoter import PeeweeImporter
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
class TaskStatus:
|
|
@@ -30,13 +30,13 @@ class PeeweeQueue(FunboostFileLoggerMixin, LoggerLevelSetterMixin):
|
|
|
30
30
|
self._create_table()
|
|
31
31
|
|
|
32
32
|
def _create_table(self):
|
|
33
|
-
class FunboostMessage(Model):
|
|
33
|
+
class FunboostMessage(PeeweeImporter().Model):
|
|
34
34
|
"""数据库的一行模拟一条消息"""
|
|
35
|
-
job_id = BigAutoField(primary_key=True, )
|
|
36
|
-
body = CharField(max_length=10240, null=False)
|
|
37
|
-
publish_timestamp = DateTimeField(default=datetime.datetime.now)
|
|
38
|
-
status = CharField(max_length=40, null=False)
|
|
39
|
-
consume_start_timestamp = DateTimeField(default=None, null=True)
|
|
35
|
+
job_id = PeeweeImporter().BigAutoField(primary_key=True, )
|
|
36
|
+
body = PeeweeImporter().CharField(max_length=10240, null=False)
|
|
37
|
+
publish_timestamp = PeeweeImporter().DateTimeField(default=datetime.datetime.now)
|
|
38
|
+
status = PeeweeImporter().CharField(max_length=40, null=False)
|
|
39
|
+
consume_start_timestamp = PeeweeImporter().DateTimeField(default=None, null=True)
|
|
40
40
|
|
|
41
41
|
class Meta:
|
|
42
42
|
db_table = self.queue_name
|
|
@@ -47,7 +47,7 @@ class PeeweeQueue(FunboostFileLoggerMixin, LoggerLevelSetterMixin):
|
|
|
47
47
|
passwd=BrokerConnConfig.MYSQL_PASSWORD,
|
|
48
48
|
database=BrokerConnConfig.MYSQL_DATABASE,
|
|
49
49
|
)
|
|
50
|
-
database = MySQLDatabase(**conn_params)
|
|
50
|
+
database = PeeweeImporter().MySQLDatabase(**conn_params)
|
|
51
51
|
|
|
52
52
|
FunboostMessage.create_table()
|
|
53
53
|
self.FunboostMessage = FunboostMessage
|
|
@@ -68,7 +68,7 @@ class PeeweeQueue(FunboostFileLoggerMixin, LoggerLevelSetterMixin):
|
|
|
68
68
|
# print(ret)
|
|
69
69
|
if len(ret) == 1:
|
|
70
70
|
row_obj = ret[0]
|
|
71
|
-
row = model_to_dict(row_obj)
|
|
71
|
+
row = PeeweeImporter().model_to_dict(row_obj)
|
|
72
72
|
self.FunboostMessage.update(status=TaskStatus.PENGDING, consume_start_timestamp=datetime.datetime.now()
|
|
73
73
|
).where(self.FunboostMessage.job_id == row['job_id']).execute()
|
|
74
74
|
return row
|
|
@@ -16,7 +16,7 @@ class ParamikoFolderUploader(LoggerMixin, LoggerLevelSetterMixin):
|
|
|
16
16
|
path_pattern_exluded_tuple=('/.git/', '/.idea/', '/dist/', '/build/'),
|
|
17
17
|
file_suffix_tuple_exluded=('.pyc', '.log', '.gz'),
|
|
18
18
|
only_upload_within_the_last_modify_time=3650 * 24 * 60 * 60,
|
|
19
|
-
file_volume_limit=1000 * 1000, sftp_log_level=20):
|
|
19
|
+
file_volume_limit=1000 * 1000, sftp_log_level=20, pkey_file_path=None):
|
|
20
20
|
"""
|
|
21
21
|
|
|
22
22
|
:param host:
|
|
@@ -30,6 +30,7 @@ class ParamikoFolderUploader(LoggerMixin, LoggerLevelSetterMixin):
|
|
|
30
30
|
:param only_upload_within_the_last_modify_time: 仅仅上传最近多少天修改的文件
|
|
31
31
|
:param file_volume_limit: 大于这个体积的不上传,单位b。
|
|
32
32
|
:param sftp_log_level:日志级别
|
|
33
|
+
:param pkey_file_path: 私钥文件路径,如果设置了这个,那么使用私钥登录。
|
|
33
34
|
"""
|
|
34
35
|
self._host = host
|
|
35
36
|
self._port = port
|
|
@@ -48,7 +49,11 @@ class ParamikoFolderUploader(LoggerMixin, LoggerLevelSetterMixin):
|
|
|
48
49
|
self._file_volume_limit = file_volume_limit
|
|
49
50
|
|
|
50
51
|
t = paramiko.Transport((host, port))
|
|
51
|
-
|
|
52
|
+
if pkey_file_path is not None and os.path.exists(pkey_file_path):
|
|
53
|
+
pkey = paramiko.RSAKey.from_private_key_file(open(pkey_file_path))
|
|
54
|
+
t.connect(username=user, pkey=pkey)
|
|
55
|
+
else:
|
|
56
|
+
t.connect(username=user, password=password)
|
|
52
57
|
self.sftp = paramiko.SFTPClient.from_transport(t)
|
|
53
58
|
|
|
54
59
|
ssh = paramiko.SSHClient()
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 43.
|
|
3
|
+
Version: 43.8
|
|
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
|
|
@@ -85,7 +85,7 @@ setup(
|
|
|
85
85
|
'psutil',
|
|
86
86
|
# 'sqlalchemy==1.3.10',
|
|
87
87
|
# 'sqlalchemy_utils==0.36.1', # 用户使用数据库作为消息队列时候,自行安装,不自动安装这个包。也可以使用kombu中间件的sqlalchemy模式来操作数据库或者peewee操作。
|
|
88
|
-
'peewee==3.15.1',
|
|
88
|
+
# 'peewee==3.17.3', # 'peewee==3.15.1', # 惰性安装
|
|
89
89
|
'apscheduler==3.10.1',
|
|
90
90
|
'pikav0',
|
|
91
91
|
'pikav1',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-43.6 → funboost-43.8}/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-43.6 → funboost-43.8}/funboost/concurrent_pool/backup/async_pool_executor_janus.py
RENAMED
|
File without changes
|
|
File without changes
|
{funboost-43.6 → funboost-43.8}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-43.6 → funboost-43.8}/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
|
{funboost-43.6 → funboost-43.8}/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-43.6 → funboost-43.8}/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
|