funboost 46.8__tar.gz → 46.9__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.8/funboost.egg-info → funboost-46.9}/PKG-INFO +1 -1
- {funboost-46.8 → funboost-46.9}/funboost/__init__.py +1 -1
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/custom_threadpool_executor.py +5 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/base_consumer.py +11 -8
- {funboost-46.8 → funboost-46.9}/funboost/core/func_params_model.py +2 -2
- {funboost-46.8 → funboost-46.9}/funboost/timing_job/__init__.py +12 -15
- {funboost-46.8 → funboost-46.9}/funboost/utils/time_util.py +17 -16
- {funboost-46.8 → funboost-46.9/funboost.egg-info}/PKG-INFO +1 -1
- {funboost-46.8 → funboost-46.9}/funboost.egg-info/requires.txt +2 -2
- {funboost-46.8 → funboost-46.9}/setup.py +2 -2
- {funboost-46.8 → funboost-46.9}/LICENSE +0 -0
- {funboost-46.8 → funboost-46.9}/MANIFEST.in +0 -0
- {funboost-46.8 → funboost-46.9}/README.md +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/__init__old.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/__main__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/assist/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/assist/celery_helper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/assist/dramatiq_helper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/assist/faststream_helper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/assist/huey_helper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/assist/rocketry_helper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/assist/rq_helper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/assist/rq_windows_worker.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/assist/taskiq_helper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/beggar_version_implementation/beggar_redis_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/async_helper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/async_pool_executor.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/backup/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/backup/async_pool_executor0223.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/backup/async_pool_executor_back.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/backup/async_pool_executor_janus.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/base_pool_type.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/bounded_processpoolexcutor_py36.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/bounded_threadpoolexcutor.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/concurrent_pool_with_multi_process.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/custom_evenlet_pool_executor.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/custom_gevent_pool_executor.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/custom_threadpool_executor000.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/fixed_thread_pool.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/flexible_thread_pool.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/pool_commons.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/single_thread_executor.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/constant.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/celery_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/confirm_mixin.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/dramatiq_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/empty_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/faststream_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/http_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/http_consumer000.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/httpsqs_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/huey_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/kafka_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/kafka_consumer_manually_commit.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/kombu_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/local_python_queue_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/memory_deque_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/mongomq_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/mqtt_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/nameko_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/nats_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/nsq_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/peewee_conusmer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/persist_queue_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/pulsar_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/rabbitmq_amqpstorm_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/rabbitmq_pika_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/rabbitmq_pika_consumerv0.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/rabbitmq_rabbitpy_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/redis_brpoplpush_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/redis_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/redis_consumer_ack_able.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/redis_consumer_ack_using_timeout.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/redis_consumer_priority.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/redis_consumer_simple.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/redis_filter.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/redis_pubsub_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/redis_stream_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/rocketmq_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/rq_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/sqlachemy_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/tcp_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/txt_file_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/udp_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/consumers/zeromq_consumer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/contrib/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/contrib/api_publish_msg.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/contrib/django_db_deco.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/contrib/queue2queue.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/contrib/redis_consume_latest_msg_broker.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/contrib/save_result_status_to_sqldb.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/active_cousumer_info_getter.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/booster.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/cli/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/cli/discovery_boosters.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/cli/funboost_cli_user_templ.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/cli/funboost_fire.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/current_task.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/exceptions.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/fabric_deploy_helper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/funboost_config_getter.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/funboost_time.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/function_result_status_config.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/function_result_status_saver.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/helper_funs.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/kill_remote_task.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/lazy_impoter.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/loggers.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/msg_result_getter.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/muliti_process_enhance.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/serialization.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/core/task_id_logger.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/factories/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/factories/broker_kind__publsiher_consumer_type_map.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/factories/consumer_factory.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/factories/publisher_factotry.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/funboost_config_deafult.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/__pycache__/app.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/__pycache__/functions.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/app.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/functions.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/assets/css/custom.css +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/assets/css/jquery.mCustomScrollbar.min.css +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/assets/img/user.jpg +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/assets/js/custom.js +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/assets/js/jquery.mCustomScrollbar.concat.min.js +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/css/style.css +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/images/bg.jpg +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/images/password.png +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/images/tick.png +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/images/user.png +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/static/js/jquery-1.11.0.min.js +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/templates/index.html +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/function_result_web/templates/login.html +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/base_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/celery_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/celery_publisher000.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/confluent_kafka_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/dramatiq_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/empty_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/faststream_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/http_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/httpsqs_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/huey_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/kafka_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/kombu_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/local_python_queue_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/meomory_deque_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/mongomq_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/mqtt_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/nameko_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/nats_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/nsq_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/peewee_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/persist_queue_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/pulsar_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/rabbitmq_amqpstorm_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/rabbitmq_pika_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/rabbitmq_rabbitpy_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/redis_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/redis_publisher_lpush.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/redis_publisher_priority.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/redis_publisher_simple.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/redis_pubsub_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/redis_queue_flush_mixin.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/redis_stream_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/rocketmq_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/rq_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/sqla_queue_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/tcp_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/txt_file_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/udp_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/publishers/zeromq_publisher.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/queues/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/queues/memory_queues_map.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/queues/peewee_queue.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/queues/sqla_queue.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/set_frame_config.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/timing_job/apscheduler_use_mysql_store.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/timing_job/apscheduler_use_redis_store.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/apscheduler_monkey.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/block_exit.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/bulk_operation.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/class_utils.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/ctrl_c_end.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/custom_pysnooper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/decorators.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages/mongomq/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages/mongomq/lock.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages/mongomq/mongomq.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages/mongomq/mongomq0000.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages/mongomq/test.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages/mongomq/utils.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/__pycache__/add_to_pythonpath.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/add_to_pythonpath.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/client.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/compat.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/connection.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/lock.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/__pycache__/utils.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/client.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/compat.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/connection.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/exceptions.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/lock.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/log.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/py.typed +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/readme.md +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/sentinel.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/aioredis/utils.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/StoppableThread.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/StoppableThread.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/__init__.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/dafunc.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/exceptions.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-311.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-37.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/__pycache__/py3_raise.cpython-39.pyc +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/dafunc2222.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/exceptions.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py2_raise.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/func_timeout/py3_raise.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/dependency_packages_in_pythonpath/readme.md +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/develop_log.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/expire_lock.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/json_helper.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/mongo_util.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/monkey_color_log.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/monkey_patches.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/mqtt_util.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/paramiko_util.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/pysnooper_ydf/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/pysnooper_ydf/pycompat.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/pysnooper_ydf/tracer.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/pysnooper_ydf/utils.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/pysnooper_ydf/variables.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/rabbitmq_factory.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/redis_manager.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/redis_manager_old.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/resource_monitoring.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/restart_python.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/simple_data_class.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/str_utils.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/times/__init__.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/times/version.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost/utils/un_strict_json_dumps.py +0 -0
- {funboost-46.8 → funboost-46.9}/funboost.egg-info/SOURCES.txt +0 -0
- {funboost-46.8 → funboost-46.9}/funboost.egg-info/dependency_links.txt +0 -0
- {funboost-46.8 → funboost-46.9}/funboost.egg-info/entry_points.txt +0 -0
- {funboost-46.8 → funboost-46.9}/funboost.egg-info/top_level.txt +0 -0
- {funboost-46.8 → funboost-46.9}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 46.
|
|
3
|
+
Version: 46.9
|
|
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
|
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
|
|
20
20
|
可以在各种地方加入 time.sleep 来验证 第1条和第2条的自动智能缩放功能。
|
|
21
21
|
"""
|
|
22
|
+
import logging
|
|
23
|
+
|
|
22
24
|
import os
|
|
23
25
|
import atexit
|
|
24
26
|
import queue
|
|
@@ -175,6 +177,9 @@ class _CustomThread(threading.Thread, FunboostFileLoggerMixin, LoggerLevelSetter
|
|
|
175
177
|
# noinspection PyProtectedMember
|
|
176
178
|
def run(self):
|
|
177
179
|
# noinspection PyUnresolvedReferences
|
|
180
|
+
# print(logging.getLogger(None).level,logging.getLogger(None).handlers)
|
|
181
|
+
# print(self.logger.level)
|
|
182
|
+
# print(self.logger.handlers)
|
|
178
183
|
self.logger.debug(f'新启动线程 {self._ident} ')
|
|
179
184
|
self._executorx._change_threads_free_count(1)
|
|
180
185
|
while True:
|
|
@@ -13,6 +13,7 @@ import typing
|
|
|
13
13
|
import abc
|
|
14
14
|
import copy
|
|
15
15
|
from apscheduler.jobstores.memory import MemoryJobStore
|
|
16
|
+
from funboost.core.funboost_time import FunboostTime
|
|
16
17
|
from pathlib import Path
|
|
17
18
|
# from multiprocessing import Process
|
|
18
19
|
import datetime
|
|
@@ -401,11 +402,12 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
401
402
|
logger_apscheduler = get_logger('push_for_apscheduler_use_database_store', log_filename='push_for_apscheduler_use_database_store.log')
|
|
402
403
|
|
|
403
404
|
@classmethod
|
|
404
|
-
def
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
405
|
+
def _push_apscheduler_task_to_broker(cls, queue_name, msg, runonce_uuid):
|
|
406
|
+
funboost_lazy_impoter.BoostersManager.get_or_create_booster_by_queue_name(queue_name).publish(msg)
|
|
407
|
+
# key = 'apscheduler.redisjobstore_runonce'
|
|
408
|
+
# if RedisMixin().redis_db_frame.sadd(key, runonce_uuid): # 这样可以阻止多次启动同队列名消费者 redis jobstore多次运行函数.
|
|
409
|
+
# cls.logger_apscheduler.debug(f'延时任务用普通消息重新发布到普通队列 {msg}')
|
|
410
|
+
# funboost_lazy_impoter.BoostersManager.get_or_create_booster_by_queue_name(queue_name).publish(msg)
|
|
409
411
|
|
|
410
412
|
@abc.abstractmethod
|
|
411
413
|
def _shedual_task(self):
|
|
@@ -486,9 +488,10 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
486
488
|
run_date = None
|
|
487
489
|
# print(kw)
|
|
488
490
|
if msg_countdown:
|
|
489
|
-
run_date =
|
|
491
|
+
run_date = FunboostTime(kw['body']['extra']['publish_time']).datetime_obj + datetime.timedelta(seconds=msg_countdown)
|
|
490
492
|
if msg_eta:
|
|
491
|
-
|
|
493
|
+
|
|
494
|
+
run_date = FunboostTime(msg_eta).datetime_obj
|
|
492
495
|
# print(run_date,time_util.DatetimeConverter().datetime_obj)
|
|
493
496
|
# print(run_date.timestamp(),time_util.DatetimeConverter().datetime_obj.timestamp())
|
|
494
497
|
# print(self.concurrent_pool)
|
|
@@ -507,7 +510,7 @@ class AbstractConsumer(LoggerLevelSetterMixin, metaclass=abc.ABCMeta, ):
|
|
|
507
510
|
self.__delete_eta_countdown(msg_no_delay)
|
|
508
511
|
# print(msg_no_delay)
|
|
509
512
|
# 数据库作为apscheduler的jobstores时候, 不能用 self.pbulisher_of_same_queue.publish,self不能序列化
|
|
510
|
-
self._delay_task_scheduler.add_job(self.
|
|
513
|
+
self._delay_task_scheduler.add_job(self._push_apscheduler_task_to_broker, 'date', run_date=run_date,
|
|
511
514
|
kwargs={'queue_name': self.queue_name, 'msg': msg_no_delay, 'runonce_uuid': str(uuid.uuid4())},
|
|
512
515
|
misfire_grace_time=misfire_grace_time,
|
|
513
516
|
)
|
|
@@ -194,7 +194,7 @@ class BoosterParams(BaseJsonAbleModel):
|
|
|
194
194
|
broker_exclusive_config: dict = {} # 加上一个不同种类中间件非通用的配置,不同中间件自身独有的配置,不是所有中间件都兼容的配置,因为框架支持30种消息队列,消息队列不仅仅是一般的先进先出queue这么简单的概念,
|
|
195
195
|
# 例如kafka支持消费者组,rabbitmq也支持各种独特概念例如各种ack机制 复杂路由机制,有的中间件原生能支持消息优先级有的中间件不支持,每一种消息队列都有独特的配置参数意义,可以通过这里传递。每种中间件能传递的键值对可以看consumer类的 BROKER_EXCLUSIVE_CONFIG_DEFAULT
|
|
196
196
|
|
|
197
|
-
should_check_publish_func_params: bool = True # 消息发布时候是否校验消息发布内容,比如有的人发布消息,函数只接受a,b两个入参,他去传2
|
|
197
|
+
should_check_publish_func_params: bool = True # 消息发布时候是否校验消息发布内容,比如有的人发布消息,函数只接受a,b两个入参,他去传2个入参,或者传参不存在的参数名字; 如果消费函数加了装饰器 ,你非要写*args,**kwargs,那就需要关掉发布消息时候的函数入参检查
|
|
198
198
|
|
|
199
199
|
consumer_override_cls: typing.Optional[typing.Type] = None # 使用 consumer_override_cls 和 publisher_override_cls 来自定义重写或新增消费者 发布者,见文档4.21b介绍,
|
|
200
200
|
publisher_override_cls: typing.Optional[typing.Type] = None
|
|
@@ -283,7 +283,7 @@ class PriorityConsumingControlConfig(BaseJsonAbleModel):
|
|
|
283
283
|
is_using_rpc_mode: bool = None
|
|
284
284
|
|
|
285
285
|
countdown: typing.Union[float, int] = None
|
|
286
|
-
eta: datetime.datetime = None
|
|
286
|
+
eta: typing.Union[datetime.datetime, str] = None # 时间对象, 或 %Y-%m-%d %H:%M:%S 字符串。
|
|
287
287
|
misfire_grace_time: typing.Union[int, None] = None
|
|
288
288
|
|
|
289
289
|
other_extra_params: dict = None # 其他参数, 例如消息优先级 , priority_control_config=PriorityConsumingControlConfig(other_extra_params={'priroty': priorityxx}),
|
|
@@ -2,35 +2,29 @@
|
|
|
2
2
|
集成定时任务。
|
|
3
3
|
"""
|
|
4
4
|
import atexit
|
|
5
|
-
import copy
|
|
6
|
-
import importlib
|
|
7
|
-
|
|
8
|
-
import pickle
|
|
9
5
|
|
|
10
6
|
import time
|
|
11
7
|
from apscheduler.executors.pool import BasePoolExecutor
|
|
12
8
|
|
|
13
|
-
from funboost.utils.decorators import RedisDistributedLockContextManager,RedisDistributedBlockLockContextManager
|
|
14
9
|
from typing import Union
|
|
15
10
|
import threading
|
|
16
11
|
|
|
17
12
|
from apscheduler.schedulers.background import BackgroundScheduler
|
|
18
|
-
from apscheduler.jobstores.redis import RedisJobStore
|
|
19
13
|
# noinspection PyProtectedMember
|
|
20
14
|
from apscheduler.schedulers.base import STATE_STOPPED, STATE_RUNNING
|
|
21
|
-
from apscheduler.util import undefined,TIMEOUT_MAX
|
|
15
|
+
from apscheduler.util import undefined, TIMEOUT_MAX
|
|
22
16
|
import deprecated
|
|
23
17
|
from funboost.utils.redis_manager import RedisMixin
|
|
24
18
|
|
|
25
|
-
from funboost.funboost_config_deafult import
|
|
19
|
+
from funboost.funboost_config_deafult import FunboostCommonConfig
|
|
26
20
|
|
|
27
21
|
from funboost.consumers.base_consumer import AbstractConsumer
|
|
28
22
|
from funboost.core.booster import BoostersManager, Booster
|
|
29
|
-
|
|
23
|
+
|
|
30
24
|
from funboost import BoosterParams
|
|
31
|
-
from funboost.concurrent_pool.flexible_thread_pool import FlexibleThreadPool
|
|
32
25
|
from funboost.concurrent_pool.custom_threadpool_executor import ThreadPoolExecutorShrinkAble
|
|
33
26
|
|
|
27
|
+
|
|
34
28
|
@deprecated.deprecated(reason='以后不要再使用这种方式,对于job_store为数据库时候需要序列化不好。使用内存和数据库都兼容的添加任务方式: add_push_job')
|
|
35
29
|
def timing_publish_deco(consuming_func_decorated_or_consumer: Union[callable, AbstractConsumer]):
|
|
36
30
|
def _deco(*args, **kwargs):
|
|
@@ -49,14 +43,16 @@ def push_fun_params_to_broker(queue_name: str, *args, runonce_uuid=None, **kwarg
|
|
|
49
43
|
queue_name 队列名字
|
|
50
44
|
*args **kwargs 是消费函数的入参
|
|
51
45
|
发布消息中可以包括,runonce_uuid这个入参,确保分布式多个脚本都启动了定时器,导致每个定时器重复发布到消息队列,值你自己写 str(uuid.uuid4())
|
|
46
|
+
# 不需要传递 runonce_uuid 了,已经用专门的 FunboostBackgroundSchedulerProcessJobsWithinRedisLock 解决了。
|
|
52
47
|
"""
|
|
53
|
-
if runonce_uuid:
|
|
48
|
+
if runonce_uuid: # 不需要传递 runonce_uuid 了,已经用专门的 FunboostBackgroundSchedulerProcessJobsWithinRedisLock 解决了 process_jobs的问题。
|
|
54
49
|
key = 'apscheduler.redisjobstore_runonce2'
|
|
55
50
|
if RedisMixin().redis_db_frame.sadd(key, runonce_uuid):
|
|
56
51
|
BoostersManager.get_or_create_booster_by_queue_name(queue_name).push(*args, **kwargs)
|
|
57
52
|
else:
|
|
58
53
|
BoostersManager.get_or_create_booster_by_queue_name(queue_name).push(*args, **kwargs)
|
|
59
54
|
|
|
55
|
+
|
|
60
56
|
class ThreadPoolExecutorForAps(BasePoolExecutor):
|
|
61
57
|
"""
|
|
62
58
|
An executor that runs jobs in a concurrent.futures thread pool.
|
|
@@ -68,10 +64,11 @@ class ThreadPoolExecutorForAps(BasePoolExecutor):
|
|
|
68
64
|
ThreadPoolExecutor constructor
|
|
69
65
|
"""
|
|
70
66
|
|
|
71
|
-
def __init__(self, max_workers=10, ):
|
|
72
|
-
pool = ThreadPoolExecutorShrinkAble(int(max_workers),)
|
|
67
|
+
def __init__(self, max_workers=10, pool_kwargs=None):
|
|
68
|
+
pool = ThreadPoolExecutorShrinkAble(int(max_workers), )
|
|
73
69
|
super().__init__(pool)
|
|
74
70
|
|
|
71
|
+
|
|
75
72
|
class FunboostBackgroundScheduler(BackgroundScheduler):
|
|
76
73
|
"""
|
|
77
74
|
自定义的, 继承了官方BackgroundScheduler,
|
|
@@ -126,7 +123,7 @@ class FunboostBackgroundScheduler(BackgroundScheduler):
|
|
|
126
123
|
args_list.insert(0, func.queue_name)
|
|
127
124
|
args = tuple(args_list)
|
|
128
125
|
kwargs = kwargs or {}
|
|
129
|
-
kwargs['runonce_uuid'] = runonce_uuid
|
|
126
|
+
kwargs['runonce_uuid'] = runonce_uuid # 忽略,用户不需要传递runonce_uuid入参。
|
|
130
127
|
return self.add_job(push_fun_params_to_broker, trigger, args, kwargs, id, name,
|
|
131
128
|
misfire_grace_time, coalesce, max_instances,
|
|
132
129
|
next_run_time, jobstore, executor,
|
|
@@ -173,7 +170,7 @@ class FunboostBackgroundScheduler(BackgroundScheduler):
|
|
|
173
170
|
if wait_seconds is None:
|
|
174
171
|
wait_seconds = MAX_WAIT_SECONDS_FOR_NEX_PROCESS_JOBS
|
|
175
172
|
self._last_wait_seconds = min(wait_seconds, MAX_WAIT_SECONDS_FOR_NEX_PROCESS_JOBS)
|
|
176
|
-
if wait_seconds in (None,TIMEOUT_MAX):
|
|
173
|
+
if wait_seconds in (None, TIMEOUT_MAX):
|
|
177
174
|
self._last_has_task = False
|
|
178
175
|
else:
|
|
179
176
|
self._last_has_task = True
|
|
@@ -5,7 +5,7 @@ import datetime
|
|
|
5
5
|
import time
|
|
6
6
|
import re
|
|
7
7
|
import pytz
|
|
8
|
-
|
|
8
|
+
from funboost.core.funboost_time import FunboostTime
|
|
9
9
|
|
|
10
10
|
from funboost.utils import nb_print
|
|
11
11
|
|
|
@@ -75,21 +75,22 @@ class DatetimeConverter:
|
|
|
75
75
|
"""
|
|
76
76
|
:param datetimex: 接受时间戳 datatime类型 和 时间字符串三种类型
|
|
77
77
|
"""
|
|
78
|
-
if isinstance(datetimex, str):
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
elif isinstance(datetimex, (int, float)):
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
elif isinstance(datetimex, datetime.datetime):
|
|
88
|
-
|
|
89
|
-
elif datetimex is None:
|
|
90
|
-
|
|
91
|
-
else:
|
|
92
|
-
|
|
78
|
+
# if isinstance(datetimex, str):
|
|
79
|
+
# if not re.match(r'\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}', datetimex):
|
|
80
|
+
# raise ValueError('时间字符串的格式不符合此传参的规定')
|
|
81
|
+
# else:
|
|
82
|
+
# self.datetime_obj = datetime.datetime.strptime(datetimex, self.DATETIME_FORMATTER)
|
|
83
|
+
# elif isinstance(datetimex, (int, float)):
|
|
84
|
+
# if datetimex < 1:
|
|
85
|
+
# datetimex += 86400
|
|
86
|
+
# self.datetime_obj = datetime.datetime.fromtimestamp(datetimex, tz=pytz.timezone(_get_funboost_timezone())) # 时间戳0在windows会出错。
|
|
87
|
+
# elif isinstance(datetimex, datetime.datetime):
|
|
88
|
+
# self.datetime_obj = datetimex
|
|
89
|
+
# elif datetimex is None:
|
|
90
|
+
# self.datetime_obj = datetime.datetime.now(tz=pytz.timezone(_get_funboost_timezone()))
|
|
91
|
+
# else:
|
|
92
|
+
# raise ValueError('实例化时候的传参不符合规定')
|
|
93
|
+
self.datetime_obj = FunboostTime(datetimex).datetime_obj
|
|
93
94
|
|
|
94
95
|
@property
|
|
95
96
|
def datetime_str(self):
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: funboost
|
|
3
|
-
Version: 46.
|
|
3
|
+
Version: 46.9
|
|
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
|
|
@@ -77,9 +77,9 @@ setup(
|
|
|
77
77
|
'Topic :: Software Development :: Libraries'
|
|
78
78
|
],
|
|
79
79
|
install_requires=[
|
|
80
|
-
'nb_log>=
|
|
80
|
+
'nb_log>=13.2',
|
|
81
81
|
'nb_libs>=1.8',
|
|
82
|
-
'nb_time>=
|
|
82
|
+
'nb_time>=2.0',
|
|
83
83
|
'pymongo==4.3.3', # 3.5.1 -> 4.0.2
|
|
84
84
|
'AMQPStorm==2.10.6',
|
|
85
85
|
'rabbitpy==2.0.1',
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.8 → funboost-46.9}/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.8 → funboost-46.9}/funboost/concurrent_pool/backup/async_pool_executor_janus.py
RENAMED
|
File without changes
|
|
File without changes
|
{funboost-46.8 → funboost-46.9}/funboost/concurrent_pool/bounded_processpoolexcutor_gt_py37.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{funboost-46.8 → funboost-46.9}/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.8 → funboost-46.9}/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.8 → funboost-46.9}/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
|