代码拉取完成,页面将自动刷新
# -*- coding: utf-8 -*-
import logging
from pathlib import Path
import pytz
from funboost.constant import BrokerEnum, ConcurrentModeEnum
from funboost.core.func_params_model import FunctionResultStatusPersistanceConfig
from funboost.utils.simple_data_class import DataClassBase
from src.config import get_app_settings
from src.enums.redis_db import RedisDbNumEnum
"""
funboost_config.py 文件是第一次运行框架自动生成到你的项目根目录的,不需要用由户手动创建。
此文件里面可以写任意python代码。例如 中间件 帐号 密码自己完全可以从apola配置中心获取或者从环境变量获取。
"""
"""
你项目根目录下自动生成的 funboost_config.py 文件中修改配置,会被自动读取到。
用户不要动修改框架的源码 funboost/funboost_config_deafult.py 中的代码,此模块的变量会自动被 funboost_config.py 覆盖。
funboost/funboost_config_deafult.py配置覆盖逻辑可看funboost/set_frame_config.py中的代码.
框架使用文档是 https://funboost.readthedocs.io/zh_CN/latest/
"""
# 获取应用配置
settings = get_app_settings()
class BrokerConnConfig(DataClassBase):
"""
中间件连接配置
此文件按需修改,例如你使用redis中间件作为消息队列,可以不用管rabbitmq mongodb kafka啥的配置。
但有3个功能例外,如果你需要使用rpc模式或者分布式控频或者任务过滤功能,无论设置使用何种消息队列中间件都需要把redis连接配置好,
如果@boost装饰器设置is_using_rpc_mode为True或者 is_using_distributed_frequency_control为True或do_task_filtering=True则需要把redis连接配置好,默认是False不强迫用户安装redis。
"""
MONGO_CONNECT_URL = f"mongodb://127.0.0.1:27017" # 如果有密码连接 'mongodb://myUserAdmin:8mwTdy1klnSYepNo@192.168.199.202:27016/' authSource 指定鉴权db,MONGO_CONNECT_URL = 'mongodb://root:123456@192.168.64.151:27017?authSource=admin'
RABBITMQ_USER = "rabbitmq_user"
RABBITMQ_PASS = "rabbitmq_pass"
RABBITMQ_HOST = "127.0.0.1"
RABBITMQ_PORT = 5672
RABBITMQ_VIRTUAL_HOST = "" # my_host # 这个是rabbitmq的虚拟子host用户自己创建的,如果你想直接用rabbitmq的根host而不是使用虚拟子host,这里写 空字符串 即可。
RABBITMQ_URL = f"amqp://{RABBITMQ_USER}:{RABBITMQ_PASS}@{RABBITMQ_HOST}:{RABBITMQ_PORT}/{RABBITMQ_VIRTUAL_HOST}"
REDIS_HOST = settings.redis_host
REDIS_USERNAME = ""
REDIS_PASSWORD = settings.redis_password
REDIS_PORT = settings.redis_port
REDIS_DB = RedisDbNumEnum.funboost_db.value # redis消息队列所在db,请不要在这个db放太多其他键值对,框架里面有的功能会scan扫描unacked的键名,使用单独的db。
REDIS_DB_FILTER_AND_RPC_RESULT = RedisDbNumEnum.funboost_rpc_result_db.value # 如果函数做任务参数过滤 或者使用rpc获取结果,使用这个db,因为这个db的键值对多,和redis消息队列db分开
REDIS_URL = f"redis://{REDIS_USERNAME}:{REDIS_PASSWORD}@{REDIS_HOST}:{REDIS_PORT}/{REDIS_DB}"
NSQD_TCP_ADDRESSES = ["127.0.0.1:4150"]
NSQD_HTTP_CLIENT_HOST = "127.0.0.1"
NSQD_HTTP_CLIENT_PORT = 4151
KAFKA_BOOTSTRAP_SERVERS = ["127.0.0.1:9092"]
KFFKA_SASL_CONFIG = {
"bootstrap_servers": KAFKA_BOOTSTRAP_SERVERS,
"sasl_plain_username": "",
"sasl_plain_password": "",
"sasl_mechanism": "SCRAM-SHA-256",
"security_protocol": "SASL_PLAINTEXT",
}
SQLACHEMY_ENGINE_URL = "sqlite:////sqlachemy_queues/queues.db"
# 如果broker_kind 使用 peewee 中间件模式会使用mysql配置
MYSQL_HOST = "127.0.0.1"
MYSQL_PORT = 3306
MYSQL_USER = "root"
MYSQL_PASSWORD = "123456"
MYSQL_DATABASE = "testdb6"
# persist_quque中间件时候采用本机sqlite的方式,数据库文件生成的位置,如果linux账号在根目录没权限建文件夹,可以换文件夹。
SQLLITE_QUEUES_PATH = "/sqllite_queues"
TXT_FILE_PATH = (
Path(__file__).parent / "txt_queues"
) # 不建议使用这个txt模拟消息队列中间件,本地持久化优先选择 PERSIST_QUQUE 中间件。
ROCKETMQ_NAMESRV_ADDR = "192.168.199.202:9876"
MQTT_HOST = "127.0.0.1"
MQTT_TCP_PORT = 1883
HTTPSQS_HOST = "127.0.0.1"
HTTPSQS_PORT = "1218"
HTTPSQS_AUTH = "123456"
NATS_URL = "nats://192.168.6.134:4222"
KOMBU_URL = "redis://127.0.0.1:6379/9" # 这个就是celery依赖包kombu使用的消息队列格式,所以funboost支持一切celery支持的消息队列种类。
# KOMBU_URL = 'sqla+sqlite:////dssf_kombu_sqlite.sqlite' # 4个//// 代表磁盘根目录下生成一个文件。推荐绝对路径。3个///是相对路径。
CELERY_BROKER_URL = "redis://127.0.0.1:6379/12" # 使用celery作为中间件。funboost新增支持celery框架来运行函数
CELERY_RESULT_BACKEND = "redis://127.0.0.1:6379/13" # celery结果存放,可以为None
DRAMATIQ_URL = RABBITMQ_URL
PULSAR_URL = "pulsar://192.168.70.128:6650"
class FunboostCommonConfig(DataClassBase):
# nb_log包的第几个日志模板,内置了7个模板,可以在你当前项目根目录下的nb_log_config.py文件扩展模板。
NB_LOG_FORMATER_INDEX_FOR_CONSUMER_AND_PUBLISHER = (
11 # 7是简短的不可跳转,5是可点击跳转的,11是可显示ip 进程 线程的模板。
)
TIMEZONE = "Asia/Shanghai" # 时区
# 以下配置是修改funboost的一些命名空间和启动时候的日志级别,新手不熟练就别去屏蔽日志了
SHOW_HOW_FUNBOOST_CONFIG_SETTINGS = True # 如果你单纯想屏蔽 "分布式函数调度框架会自动导入funboost_config模块当第一次运行脚本时候,函数调度框架会在你的python当前项目的根目录下 ...... " 这句话,
FUNBOOST_PROMPT_LOG_LEVEL = (
logging.DEBUG
) # funboost启动时候的相关提示语,用户可以设置这个命名空间的日志级别来调整
KEEPALIVETIMETHREAD_LOG_LEVEL = logging.DEBUG # funboost的作者发明的可缩小自适应线程池,用户对可变线程池的线程创建和销毁线程完全无兴趣,可以提高日志级别.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。