Giter Club home page Giter Club logo

Comments (1)

dosubot avatar dosubot commented on June 23, 2024 3

To mitigate issues with dead sessions in MySQL due to network settings, you can configure the SQLAlchemy connection pool with specific parameters. Here are some options you can use:

  1. Pool Recycle: Ensures that connections are recycled after a specified number of seconds to avoid idle connections being closed by MySQL.
  2. Pool Pre-Ping: Enables a "ping" operation to test connections before they are used, replacing invalid connections with new ones.
  3. Pool Timeout: Specifies the number of seconds to wait before giving up on getting a connection from the pool.

Here is how you can configure these options in your create_engine call within the DatabaseService class:

from sqlalchemy import create_engine

def _create_engine(self) -> "Engine":
    """Create the engine for the database."""
    settings_service = get_settings_service()
    if settings_service.settings.DATABASE_URL and settings_service.settings.DATABASE_URL.startswith("sqlite"):
        connect_args = {"check_same_thread": False}
    else:
        connect_args = {}

    return create_engine(
        self.database_url,
        connect_args=connect_args,
        pool_recycle=3600,  # Recycle connections after 1 hour
        pool_pre_ping=True,  # Enable pre-ping to test connections
        pool_timeout=30,  # Wait up to 30 seconds for a connection
        max_overflow=-1
    )

In this example:

  • pool_recycle=3600 ensures that connections are recycled every hour.
  • pool_pre_ping=True enables the pre-ping feature to test connections before they are used.
  • pool_timeout=30 sets the timeout for getting a connection from the pool to 30 seconds.

These settings should help mitigate issues with dead sessions in MySQL due to network settings.

You can find the relevant code in the service.py file of the langflow repository. Here is the link to the file for reference: src/backend/langflow/services/database/service.py.

Details

Sources


About Dosu
This response is meant to be useful and save you time. It is not meant to be a precise solution, but rather a starting point for your own research.

Help me be more useful! Please leave a 👍 if this is helpful and 👎 if it is irrelevant.

To continue the conversation, mention @dosu.

from langflow.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.