8wDlpd.png
8wDFp9.png
8wDEOx.png
8wDMfH.png
8wDKte.png

Magento 2.4.6 选择查询消耗所有资源 cron 作业

Mikkel 2月前

96 0

我们有一个无法跟踪且不断运行多次的选择语句`SELECT `e`.*, IF(at_status.value_id > 0, at_status.value, at_status_default.value) AS `status`, `at_visibility`.`

我们有一个无法跟踪且不断运行多次的选择语句

`SELECT `e`.*, IF(at_status.value_id > 0, at_status.value, at_status_default.value) AS `status`, `at_visibility`.`value` AS `visibility` FROM `catalog_product_entity` AS `e` INNER JOIN `catalog_product_entity_int` AS `at_status_default` ON (`at_status_default`.`entity_id` = `e`.`entity_id`) AND (`at_status_default`.`attribute_id` = '97') AND `at_status_default`.`store_id` = 0 LEFT JOIN `catalog_product_entity_int` AS `at_status` ON (`at_status`.`entity_id` = `e`.`entity_id`) AND (`at_status`.`attribute_id` = '97') AND (`at_status`.`store_id` = 1) INNER JOIN `catalog_product_entity_int` AS `at_visibility` ON (`at_visibility`.`entity_id` = `e`.`entity_id`) AND (`at_visibility`.`attribute_id` = '99') AND (`at_visibility`.`store_id` = 0) WHERE ((`e`.`updated_at` >= '2024-07-09T10:51:55')) AND ((`e`.`updated_at` < '2024-07-09T12:13:10')) ORDER BY `e`.`updated_at` ASC LIMIT 50`

不同之处在于每次更新时它们都不会完成每次运行的进一步实例

关于我们如何追踪并阻止此类事件发生,您有什么想法吗?

我们尝试重建索引、禁用 cron 作业、截断数据库表、重置 mview_states 等等

帖子版权声明 1、本帖标题:Magento 2.4.6 选择查询消耗所有资源 cron 作业
    本站网址:http://xjnalaquan.com/
2、本网站的资源部分来源于网络,如有侵权,请联系站长进行删除处理。
3、会员发帖仅代表会员个人观点,并不代表本站赞同其观点和对其真实性负责。
4、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
5、站长邮箱:yeweds@126.com 除非注明,本帖由Mikkel在本站《ubuntu》版块原创发布, 转载请注明出处!
最新回复 (0)
  • 使用已编译的二进制文件

    当您使用 Ubuntu 时,另一种方法是使用 r2u 。 这有几个优点,如文档中所述:

    • Full integration with apt ,因为每个二进制文件都会解析 所有 依赖项:不再需要安装(预建档案)才发现缺少共享库。不再有意外。
    • Full integration with apt 这样系统库的更新就不会破坏 R 包:如果 CRAN 使用(共享)库,包管理器就会知道,并且不会将其删除。(系统)库更新不会再破坏(R 包)。
    • 比一些替代方案 更简单、更轻便, 运行时 库包作为依赖项安装(而不是通常更重的 开发 包)。
    • 由于包管理层的存在, 安装变得快速、自动化和可逆

    实际上,这意味着您不需要费心完成所有 apt install libssl-dev 步骤,因为您可以从 docker 镜像开始 r2u ,然后添加所需的任何包。这意味着您的 Dockerfile 操作会简单得多,而且您不会发现自己缺少重要的系统库。

    怎么运行的

    这可以通过三个文件完成:

    1. Dockerfile .
    2. install.r .
    3. pkgs_to_install.txt

    Dockerfile

    这看起来像:

    FROM eddelbuettel/r2u:noble
    WORKDIR /r
    COPY install.r .
    COPY pkgs_to_install.txt .
    ENV TZ=Europe/London
    RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
    RUN Rscript install.r
    

    您可能希望将时区设置为您所在的地区。

    pkgs_to_install.txt

    列出您想要安装的软件包。对于您的情况,可能是:

    dplyr
    ggplot2
    ggpubr
    BiocManager
    

    install.r

    您可以在其中包含任何您想要定制的 R 配置文件,包括安装包:

    pkgs_to_install <- readLines("./pkgs_to_install.txt")
    install.packages("remotes")
    remotes::install_github("REditorSupport/languageserver") # to prevent vscode warnings
    Sys.setenv(R_INSTALL_STAGED = FALSE) # prevents occasional 00LOCK permissions issues
    for (pkg in pkgs_to_install) {
        try(install.packages(pkg))
    }
    

    我的实际设置稍微复杂一些。我有一个额外的 R 脚本,它在最后运行,对 R 配置文件进行了一些小的更改,并将输出写入 installed.packages() csv,因此可以清楚地知道每个包的哪个版本安装在容器中。

    不过,总体而言,使用此工作流程可以轻松添加任何您喜欢的功能。它还应避免某些软件包所需的各种 C++ 库所带来的依赖性噩梦。此外,由于所有软件包都是从预编译的二进制文件而不是源代码安装的,因此 构建速度要快得多

    由于这个答案可能看起来非常热心,我或许应该补充一点,除了作为用户之外,我 r2u 与它的 docker 容器没有任何关系。

返回
作者最近主题: