使用 spark 重试 Oracle 连接
Oracle Connection retry using spark
我正在尝试将 Spark 连接到 Oracle。如果我的连接失败,则作业失败。相反,我想设置一些连接重试限制,以确保它根据限制尝试重新连接,如果未连接则作业失败。
请建议我们如何实施。
假设您使用的是 PySpark。最近我在我的项目中使用了它,所以我知道它有效。
我用过重试 PyPi 项目
retry 0.9.2
其应用程序通过了广泛的测试过程
我用了一个Pythonclass来保存retry相关的配置。
class RetryConfig:
retry_count = 1
delay_interval = 1
backoff_multiplier = 1
我从运行时配置中收集了应用程序参数并将它们设置如下:
RetryConfig.retry_count = <retry_count supplied from config>
RetryConfig.delay_interval = <delay_interval supplied from config>
RetryConfig.backoff_multiplier = <backoff_multiplier supplied from config>
然后在连接数据库的方法调用上应用
@retry((Exception), tries=RetryConfig.retry_count, delay=RetryConfig.delay_interval, backoff=RetryConfig.backoff_multiplier)
def connect(connection_string):
print("trying")
obj = pyodbc.connect(connection_string)
return obj
每次重试时退避都会通过退避乘数增加延迟 - 这是一个很常见的功能问题。
干杯!!
我正在尝试将 Spark 连接到 Oracle。如果我的连接失败,则作业失败。相反,我想设置一些连接重试限制,以确保它根据限制尝试重新连接,如果未连接则作业失败。
请建议我们如何实施。
假设您使用的是 PySpark。最近我在我的项目中使用了它,所以我知道它有效。
我用过重试 PyPi 项目 retry 0.9.2
其应用程序通过了广泛的测试过程
我用了一个Pythonclass来保存retry相关的配置。
class RetryConfig:
retry_count = 1
delay_interval = 1
backoff_multiplier = 1
我从运行时配置中收集了应用程序参数并将它们设置如下:
RetryConfig.retry_count = <retry_count supplied from config>
RetryConfig.delay_interval = <delay_interval supplied from config>
RetryConfig.backoff_multiplier = <backoff_multiplier supplied from config>
然后在连接数据库的方法调用上应用
@retry((Exception), tries=RetryConfig.retry_count, delay=RetryConfig.delay_interval, backoff=RetryConfig.backoff_multiplier)
def connect(connection_string):
print("trying")
obj = pyodbc.connect(connection_string)
return obj
每次重试时退避都会通过退避乘数增加延迟 - 这是一个很常见的功能问题。
干杯!!