iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > GO >如何在很短的间隔/同时进行多个查询
  • 435
分享到

如何在很短的间隔/同时进行多个查询

2024-04-05 00:04:57 435人浏览 八月长安
摘要

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何在很短的间隔/同时进行多个查询》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认

今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何在很短的间隔/同时进行多个查询》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认真看的!大家一起进步,一起学习

问题内容

嘿,我收到一条错误消息:来自 pgx 的 conn busy

我不知道如何解决这个问题。这是我的功能:

func (r *proverbRepo) SelectPendingProverbs(table string) (proverbs []domain.Proverb, err error) {
    query := fmt.Sprintf("SELECT id, proverb literal FROM %s", table)
    rows, err := r.Db.Query(context.Background(), query)
    defer rows.Close()

    if err != nil {
        return
    }

    for rows.Next() {
        var prov domain.Proverb
        if err = rows.Scan(&prov.ID, &prov.Literal); err != nil {
            return
        }
        proverbs = append(proverbs, prov)
    }
    return
}

r.dbpgx.connect(context.background(), os.getenv("psql_url"))

我在很短的时间内从两个单独的前端请求获取两个不同的表。

第一个请求通过,另一个请求返回 conn busy 错误消息。

我真的不知道要寻找什么,有人可以帮助我吗?


解决方案


pgx.connect() 返回一个不能同时使用的 pgx.conn。这是该类型的 Godocs 的状态:

conn 是 postgresql 连接句柄。并发使用并不安全。使用连接池来管理多个 goroutine 对多个数据库连接的访问​​。

因此,如果您将 pgx.connect() 替换为 GitHub.com/jackc/pgx/pgxpool 中的 pgxpool.connect() ,应该没问题。

pgx 返回的 r.db 。 connect(context.background(), os.getenv("psql_url")) 如果类型为 *pgx.conn 并且表示非并发安全的单个连接。通常,您希望使用连接池来为您处理并发并允许重用打开的连接。 要使用连接池,请将 import github.com/jackc/pgx/v4 替换为 github.com/jackc/pgx/v4/pgxpool 并使用 pgxpool.connect() 而不是 pgx.connect() 连接,并且 api 将是一样的:

r.pool := pgxpool.connect(context.background(), os.getenv("psql_url"))
r.pool.query(context.background(), query)
...

如果在任何给定点您需要使用单个连接来访问某些较低级别的功能,您可以安全地获取并发安全连接,如下所示:

conn, err := r.Pool.Acquire(context.Background())
if err != nil {
    fmt.Fprintln(os.Stderr, "Error acquiring connection:", err)
    os.Exit(1)
}
defer conn.Release()
...

好了,本文到此结束,带大家了解了《如何在很短的间隔/同时进行多个查询》,希望本文对你有所帮助!关注编程网公众号,给大家分享更多golang知识!

您可能感兴趣的文档:

--结束END--

本文标题: 如何在很短的间隔/同时进行多个查询

本文链接: https://www.lsjlt.com/news/596832.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何在很短的间隔/同时进行多个查询
    今日不肯埋头,明日何以抬头!每日一句努力自己的话哈哈~哈喽,今天我将给大家带来一篇《如何在很短的间隔/同时进行多个查询》,主要内容是讲解等等,感兴趣的朋友可以收藏或者有更好的建议在评论提出,我都会认...
    99+
    2024-04-05
  • 如何实现在一个时间段内进行间隔查询
    这篇文章主要介绍“如何实现在一个时间段内进行间隔查询”,在日常操作中,相信很多人在如何实现在一个时间段内进行间隔查询问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现在一...
    99+
    2024-04-02
  • 如何使用PHP进行时间区间查询
    在 Web 应用程序的开发中,对时间的处理是非常常见的工作之一。一个常见的需求是查询某个时间区间内的数据,比如查询某个时间段内的订单,或者统计某个时间段内的访问量等。本文将介绍如何使用 PHP 语言进行时间区间查询。首先,我们需要了解一下时...
    99+
    2023-05-14
    php
  • linux如何查看某个进程的运行时间
    小编给大家分享一下linux如何查看某个进程的运行时间,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!查看某个进程的运行时间可能,大部分同学只会使用 ps aux,其实可以通过 -o 参数,指定...
    99+
    2023-06-27
  • MySQL中如何查询当前时间间隔前1天的数据
    这篇文章主要介绍“MySQL中如何查询当前时间间隔前1天的数据”,在日常操作中,相信很多人在MySQL中如何查询当前时间间隔前1天的数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQL中如何查询当前时...
    99+
    2023-06-21
  • 如何在Ubuntu中利用NTP对时间进行同步
    本篇文章给大家分享的是有关如何在Ubuntu中利用NTP对时间进行同步,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。NTP 是通过网络来同步时间的一种 TCP/IP 协议。通常...
    99+
    2023-06-07
  • sql如何查询两个时间段之间的数据
    SQL查询两个时间段之间的数据可以使用`BETWEEN`关键字。以下是一个示例查询语句:```sqlSELECT * FRO...
    99+
    2023-09-13
    sql
  • win10如何对多个文件进行右键同时操作
    本篇内容主要讲解“win10如何对多个文件进行右键同时操作”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“win10如何对多个文件进行右键同时操作”吧!直接打开win10系统搜索框,输入reged...
    99+
    2023-06-27
  • linux如何查询正在运行的进程
    在Linux系统中,可以使用以下命令来查询正在运行的进程:1. `ps`命令:用于显示当前用户的进程。可以使用`ps aux`命令来...
    99+
    2023-08-31
    linux
  • php如何查询一个月时间内的数据
    这篇文章主要介绍“php如何查询一个月时间内的数据”,在日常操作中,相信很多人在php如何查询一个月时间内的数据问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”php如何查询一个月时间内的数据”的疑惑有所帮助!...
    99+
    2023-07-05
  • 如何使用scp在多个linux系统间进行copy
    小编给大家分享一下如何使用scp在多个linux系统间进行copy,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一,什么是scpscp是linux系统下基于ssh...
    99+
    2023-06-05
  • 如何用java实现同时进行多个请求,可以将它们并行执行,从而减少总共的请求时间。
    1.使用线程池 通过使用Java提供的线程池,可以将多个请求分配到不同的线程中并行执行。可以通过创建固定数量的线程池,然后将请求分配给线程池来实现。线程池会自动管理线程的数量和复用,从而减少了线程创建和销毁的开销,提高了程序的性能。 ...
    99+
    2023-09-09
    java
  • 怎么在Linux中查找一个命令或进程的执行时间
    这篇文章主要讲解了“怎么在Linux中查找一个命令或进程的执行时间”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么在Linux中查找一个命令或进程的执行时间”吧!在 Linux 中查找一个...
    99+
    2023-06-15
  • PostgreSQL在查询分区表时如何确定查询的是哪个分区
    这篇文章给大家分享的是有关PostgreSQL在查询分区表时如何确定查询的是哪个分区的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在规划阶段,函数set_rel_size中,如R...
    99+
    2024-04-02
  • 如何在Teradata中进行复杂的SQL查询优化
    在Teradata中进行复杂的SQL查询优化,可以按照以下几个步骤进行: 确定查询的目的和需求:首先要明确查询的目的和需要获取的...
    99+
    2024-04-02
  • 如何在MySQL中进行跨数据库的查询操作
    在MySQL中进行跨数据库的查询操作,可以使用以下两种方法: 使用全限定表名(Fully Qualified Table Name...
    99+
    2024-03-06
    MySQL
  • 如何进行sqlserver isnull在数据库查询中的应用
    这篇文章给大家介绍如何进行sqlserver isnull在数据库查询中的应用,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。isnull在数据库查询中的应用,特别是再语句连接的时候需要...
    99+
    2024-04-02
  • mysql中如何将存在分隔符号的一列进行拆分,成为多行
    mysql中如何将存在分隔符号的一列进行拆分,成为多行 -- ****************************** 写在前面的说明 **********************************-- *************...
    99+
    2023-08-17
    mysql 数据库 sql
  • 如何实现查询某个用户过去一段时间内运行的SQL语句
    小编给大家分享一下如何实现查询某个用户过去一段时间内运行的SQL语句,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!with hi...
    99+
    2024-04-02
  • 如何在 PHP 中对多维数组进行排序,同时保留键名?
    对多维数组同时保留键名排序:1. 使用 uksort(),根据键值进行排序,提供比较函数返回1、-1或0,指示键值的相对顺序。2. 使用 krsort(),对键值从高到低排序,接受一个数...
    99+
    2024-05-03
    php 多维数组排序
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作