Gatsby: [gatsby-source-wordpress] تسبب موقع WordPress الكبير في وقت إنشاء بطيء للغاية (عالق في "المصدر وتحويل العقد")

تم إنشاؤها على ٢٢ يوليو ٢٠١٨  ·  156تعليقات  ·  مصدر: gatsbyjs/gatsby

وصف

يتوقف gatsby develop على source and transform nodes بعد الاستعلام عن تثبيت WordPress كبير (حوالي 9000 مشاركة ، ~ 35 صفحة).

هل هناك أي أدلة حول ما هو أكبر من أن يتعامل معه غاتسبي في هذا الصدد؟

بيئة

  System:
    OS: macOS High Sierra 10.13.6
    CPU: x64 Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
    Shell: 3.2.57 - /bin/bash
  Binaries:
    Node: 8.10.0 - ~/n/bin/node
    Yarn: 1.5.1 - ~/n/bin/yarn
    npm: 5.6.0 - ~/n/bin/npm
  Browsers:
    Chrome: 67.0.3396.99
    Safari: 11.1.2
  npmPackages:
    gatsby: ^1.9.273 => 1.9.273
    gatsby-image: ^1.0.54 => 1.0.54
    gatsby-link: ^1.6.45 => 1.6.45
    gatsby-plugin-google-analytics: ^1.0.27 => 1.0.31
    gatsby-plugin-postcss-sass: ^1.0.22 => 1.0.22
    gatsby-plugin-react-helmet: ^2.0.10 => 2.0.11
    gatsby-plugin-react-next: ^1.0.11 => 1.0.11
    gatsby-plugin-resolve-src: 1.1.3 => 1.1.3
    gatsby-plugin-sharp: ^1.6.48 => 1.6.48
    gatsby-plugin-svgr: ^1.0.1 => 1.0.1
    gatsby-source-filesystem: ^1.5.39 => 1.5.39
    gatsby-source-wordpress: ^2.0.93 => 2.0.93
    gatsby-transformer-sharp: ^1.6.27 => 1.6.27
  npmGlobalPackages:
    gatsby-cli: 1.1.58

تحرير: أريد فقط التكرار - هذا ليس شيئًا يمكن إصلاحه بسهولة عن طريق حذف .cache/ ، .node_modules ، إلخ. إذا أدى ذلك إلى حل مشكلتك ، فلن تواجه هذه المشكلة.

التعليق الأكثر فائدة

يا رفاق ، لقد تمكنت من إصلاح هذا عن طريق تشغيل طلبات createRemoteFileNode في تسلسلي بدلاً من متوازي.

نعم ، تستند المشكلة حقًا إلى حقيقة أن createRemoteFileNode يستخدم التزامن 200 وهو أكثر من اللازم بالنسبة لمعظم خوادم WP. لدي صوري على CloudFront وكنت أواجه بعض حدود المعدل هناك.

لقد حاولت إصلاح المشكلة باستخدام إصدار متفرع من المكون الإضافي المصدر لفترة من الوقت ولكن المشكلة في الحقيقة ليست في gatsby-source-wordpress بل في gatsby-source-filesystem . من الناحية المثالية ، سيتمكن مستهلكو الوظيفة createRemoteFileNode من المرور بالتزامن هناك. ثم يمكن أن تجعل المكونات الإضافية خيار التزامن متاحًا في التكوينات الخاصة بهم. ما زلت أرغب في إجراء علاقات عامة لمعالجة هذه المشكلة!

الحل الذي كنت أستخدمه هو مجرد نص بسيط لتعديل الكود داخل node_modules . إنه حقًا هش تمامًا وليس مثاليًا ولكنه اختراق بسيط لتعديل التزامن مباشرة. يستخدم shelljs لذلك من المفترض أن يعمل لمستخدمي windows أيضًا (لم يجرب).

#!/usr/bin/env node
const path = require('path');
const shell = require('shelljs');

const FILE_PATH = path.resolve(
  __dirname,
  // add path to your root dir here,
  'node_modules',
  'gatsby-source-filesystem/create-remote-file-node.js'
);

shell.sed('-i', 'concurrent: 200', 'concurrent: 20', FILE_PATH);

ال 156 كومينتر

هل يمكنك تحضير الريبو للتكاثر؟ لا ينبغي أن يكون عدد المشاركات مشكلة (على الأقل في هذه الخطوة) - قد يواجه الإصدار 1 مشاكل في الذاكرة ولكن هذا سيكون في خطوة إنشاء لاحقة ويجب ألا يتعطل

كنت فضوليًا لمعرفة ما إذا كانت مشكلة مع Local by Flywheel ، وقادرة على إنشاء الموقع عند تقديم WordPress عبر MAMP Pro .

لكنني لم أقوم بإنشاء صفحات المنشورات حتى الآن (أنا أقوم ببناء الصفحات) ، ووقت تنفيذ هذه الخطوة الإشكالية هو 636.41 ثانية (خجول 11 دقيقة فقط).

const path = require('path')

exports.createPages = ({ boundActionCreators, graphql }) => {
  const { createPage } = boundActionCreators

  const postTemplate = path.resolve('./src/templates/Post/Post.js')

  graphql(
    `
      {
        allWordpressPost {
          edges {
            node {
              id
              slug
            }
          }
        }
      }
    `
  )
    .then((result) => {
      console.log('posts')
      // const { data, errors } = result

      // if (errors) console.log(errors)

      // if (!data) return

      //data.allWordpressPost.edges.forEach(({ node }) => {
      //  const { id, slug } = node

      //  createPage({
      //    component: postTemplate,
      //    context: {
      //      id,
      //    },
      //    path: slug,
      //  })
      //})
    })

تحرير: فقط قم بتمكين createPage للمشاركات وارتفع تنفيذ هذا العنصر إلى 14 دقيقة. وحشي ، ولكنه مثير للاهتمام أيضًا لأنه لا يستغرق أكثر من 3 دقائق لـ ~ 9000 عنصر آخر. إنه يجلس على ⠁ run graphql queries لفترة طويلة حاليًا.

تحرير: الذي استمر 419.470 ثانية ، أو 7 دقائق.

pieh عفوًا ، لقد نشرت ذلك قبل أن أرى أنك قد قمت بالرد للتو. يمكنني محاولة الحصول على هذا الموقع عن بعد غدًا.

ومن المفترض أن يشمل هذا السطر الأخير حيث يتم تعليقه عبر Local ، ويستغرق إلى الأبد عبر MAMP.

$ gatsby develop
success delete html and css files from previous builds — 0.017 s
success open and validate gatsby-config — 0.226 s
info One or more of your plugins have changed since the last time you ran Gatsby. As
a precaution, we're deleting your site's cache to ensure there's not any stale
data
success copy gatsby files — 0.013 s
success onPreBootstrap — 0.159 s
⠁ source and transform nodes -> wordpress__acf_posts fetched : 100
⠁ source and transform nodes -> wordpress__acf_pages fetched : 34
⠂ source and transform nodes -> wordpress__acf_media fetched : 100
⠈ source and transform nodes -> wordpress__acf_categories fetched : 13
⢀ source and transform nodes -> wordpress__acf_tags fetched : 0
⠄ source and transform nodes -> wordpress__acf_users fetched : 11
⢀ source and transform nodes -> wordpress__POST fetched : 9092
⢀ source and transform nodes -> wordpress__PAGE fetched : 34
⠐ source and transform nodes -> wordpress__wp_media fetched : 7483
⡀ source and transform nodes -> wordpress__wp_types fetched : 1
⠁ source and transform nodes -> wordpress__wp_statuses fetched : 1
⢀ source and transform nodes -> wordpress__wp_taxonomies fetched : 1
⠄ source and transform nodes -> wordpress__CATEGORY fetched : 14
⠈ source and transform nodes -> wordpress__TAG fetched : 19
⠐ source and transform nodes -> wordpress__wp_users fetched : 11
⡀ source and transform nodesThe server response was "401 Unauthorized"
Inner exception message : "You are not currently logged in."
⠈ source and transform nodesThe server response was "401 Unauthorized"
Inner exception message : "Sorry, you are not allowed to do that."
⡀ source and transform nodesThe server response was "404 Not Found"
Inner exception message : "No route was found matching the URL and request method"
success source and transform nodes — 636.410 s

pieh لم تؤكد أن هذا سيتم https://github.com/dustinhorton/gatsby-issue

يجب أن تكون قادرة على استنساخ ذلك وبناء.

ركض مرتين فقط لأكثر من 10 ساعات دون الانتهاء من بناء الموقع. يُرجى إعلامي بما يمكنني تقديمه أيضًا للمساعدة في تصحيح الأخطاء.

هل يمكنك محاولة الترقية إلى الإصدار 2؟ لقد أجرينا الكثير من التحسينات على السرعة لأنظمة غاتسبي الفرعية المختلفة والتي من المفترض أن تسرع بشكل كبير المواقع الكبيرة مثل هذه.

KyleAMathews سأعطي هذه اللقطة الليلة - شكرًا.

نسخة KyleAMathews v2 @ https://github.com/dustinhorton/gatsby-v2-issue. تم البناء لحوالي 50 دقيقة في هذه المرحلة.

قتله الآن. الموقع لا يزال لم يبني.

شيء آخر يمكنك تجربته هو تمكين التتبع https://next.gatsbyjs.org/docs/performance-tracing/

لم نقم بإضافة دعم التتبع حتى الآن إلى برنامج gatsby-source-wordpress لكن تقارير التتبع قد تساعدك على معرفة مكان توقفه.

إذا كان أي شخص آخر مهتمًا بالنظر في هذا الأمر ، فستكون العلاقات العامة الرائعة هي إضافة دعم التتبع إلى ووردبريس جاتسبي المصدر. Lemme تعرف ما إذا كنت مهتمًا!

سأحتاج إلى إنقاذ هذا الأمر لسوء الحظ ، حيث أحتاج إلى قضاء كل الوقت الذي أقوم فيه بالانتقال إلى موضوع تقليدي - نوع من الانهيار لعدم القدرة على استخدام Gatsby. كل شيء آخر يشعر بالعكس.

معذرةً ، لم تسنح لنا الفرصة للنظر في هذا :- (الركض الآن للحصول على v2.

هل هناك فرصة لترك موقع WP قيد التشغيل؟ يبدو بالتأكيد أن هناك خطأ هنا يجب إصلاحه.

قمت بالتغريد لطلب المساعدة ، لذا آمل أن يقفز شخص ما على هذا قريبًا :-)

https://twitter.com/gatsbyjs/status/1027079401287102465

واو ، هذا رائع - شكرًا جزيلاً. لا ينتقل الموقع إلى أي مكان في الوقت الحالي (وسأقوم بترحيل نسخة وتحديث repro إذا لزم الأمر).

dustinhorton لما

تكون استجابات REST لـ Gatsby أطول بمقدار 10-20 مرة من Local مقارنة بالإنتاج ، لذلك يستغرق بناء الموقع وقتًا طويلاً. لم أقضي وقتًا في تصحيح المشكلة في Local حتى الآن ، لكنها مدرجة في قائمة المهام الخاصة بي :)

KyleAMathews يمكنني إلقاء نظرة على إضافة التتبع إلى

Khristophor سيكون ذلك رائعا!

dustinhorton أرى 404 للصور على عينة الموقع (https://dustinhorton.com/gatsby-wp/wp-content/uploads/2018/07/IMG_9906.jpg ، على سبيل المثال) التي قد تضخم البناء زمن. هل من الممكن أن تبحث في مسارات هؤلاء؟

تعمل طلبات WP_MEDIA بسرعة إلى حد ما مع ظهور النتائج ، لذا فقد كنت مشتركًا فيها
الواضح ، ولكن يمكنني إلقاء نظرة على ذلك لاحقًا هذا الأسبوع إذا كنت تعتقد ذلك
قد يكون هذا هو الحال.

يوم الأربعاء 8 أغسطس 2018 الساعة 5:45 مساءً Chris Wiseman [email protected]
كتب:

dustinhorton https://github.com/dustinhorton أرى 404 لـ
الصور على نموذج الموقع الخاص بك (
https://dustinhorton.com/gatsby-wp/wp-content/uploads/2018/07/IMG_9906.jpg ،
على سبيل المثال) قد يؤدي إلى تضخيم وقت الإنشاء. أي فرصة تستطيع
ابحث في المسارات عن هؤلاء؟

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/gatsbyjs/gatsby/issues/6654#issuecomment-411562589 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/AAXFNRHTA-vqIwCTtioejUL-Ei3nM0Lbks5uO1vygaJpZM4VZ57n
.

هذا صحيح ، لكن جزءًا من المصدر وخطوة التحويل هو تنزيل جميع عناصر الوسائط التي يجدها في استجابة REST:
https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-wordpress/src/normalize.js#L434

قد يتسبب الحصول على 404 على صور 7504 في حدوث بعض المشكلات ؛)

أعتقد أنني قمت بتنظيف كل 404s. سأحاول بناء الليلة. شكرا لكم جميعا.

على ما يبدو لا تغيير:

~/Sites/gatsby-issue-v2 (master)
→yarn build
yarn run v1.5.1
$ gatsby build
success open and validate gatsby-config — 0.009 s
success load plugins — 0.277 s
success onPreInit — 0.257 s
success delete html and css files from previous builds — 0.008 s
success initialize cache — 0.245 s
success copy gatsby files — 0.079 s
success onPreBootstrap — 0.001 s
⠁
=START PLUGIN=====================================

Site URL: http://dustinhorton.com/gatsby-wp
Site hosted on Wordpress.com: false
Using ACF: true
Using Auth: undefined undefined
Verbose output: true

Mama Route URL: http://dustinhorton.com/gatsby-wp/wp-json

⠁ source and transform nodesRoute discovered : /
Invalid route.
Route discovered : /oembed/1.0
Invalid route.
Route discovered : /oembed/1.0/embed
Invalid route.
Route discovered : /oembed/1.0/proxy
Invalid route.
Route discovered : /yoast/v1
Valid route found. Will try to fetch.
Route discovered : /yoast/v1/configurator
Valid route found. Will try to fetch.
Route discovered : /yoast/v1/reindex_posts
Valid route found. Will try to fetch.
Route discovered : /yoast/v1/ryte
Valid route found. Will try to fetch.
Route discovered : /yoast/v1/indexables/(?P<object_type>.*)/(?P<object_id>\d+)
Invalid route.
Route discovered : /yoast/v1/statistics
Valid route found. Will try to fetch.
Route discovered : /acf/v3
Invalid route.
Route discovered : /acf/v3/posts/(?P<id>[\d]+)/?(?P<field>[\w\-\_]+)?
Invalid route.
Route discovered : /acf/v3/posts
Valid route found. Will try to fetch.
Route discovered : /acf/v3/pages/(?P<id>[\d]+)/?(?P<field>[\w\-\_]+)?
Invalid route.
Route discovered : /acf/v3/pages
Valid route found. Will try to fetch.
Route discovered : /acf/v3/media/(?P<id>[\d]+)/?(?P<field>[\w\-\_]+)?
Invalid route.
Route discovered : /acf/v3/media
Valid route found. Will try to fetch.
Route discovered : /acf/v3/categories/(?P<id>[\d]+)/?(?P<field>[\w\-\_]+)?
Invalid route.
Route discovered : /acf/v3/categories
Valid route found. Will try to fetch.
Route discovered : /acf/v3/tags/(?P<id>[\d]+)/?(?P<field>[\w\-\_]+)?
Invalid route.
Route discovered : /acf/v3/tags
Valid route found. Will try to fetch.
Route discovered : /acf/v3/comments/(?P<id>[\d]+)/?(?P<field>[\w\-\_]+)?
Invalid route.
Route discovered : /acf/v3/comments
Valid route found. Will try to fetch.
Route discovered : /acf/v3/options/(?P<id>[\w\-\_]+)/?(?P<field>[\w\-\_]+)?
Invalid route.
Route discovered : /acf/v3/users/(?P<id>[\d]+)/?(?P<field>[\w\-\_]+)?
Invalid route.
Route discovered : /acf/v3/users
Valid route found. Will try to fetch.
Route discovered : /wp/v2
Invalid route.
Route discovered : /wp/v2/posts
Valid route found. Will try to fetch.
Route discovered : /wp/v2/posts/(?P<id>[\d]+)
Invalid route.
Route discovered : /wp/v2/posts/(?P<parent>[\d]+)/revisions
Invalid route.
Route discovered : /wp/v2/posts/(?P<parent>[\d]+)/revisions/(?P<id>[\d]+)
Invalid route.
Route discovered : /wp/v2/pages
Valid route found. Will try to fetch.
Route discovered : /wp/v2/pages/(?P<id>[\d]+)
Invalid route.
Route discovered : /wp/v2/pages/(?P<parent>[\d]+)/revisions
Invalid route.
Route discovered : /wp/v2/pages/(?P<parent>[\d]+)/revisions/(?P<id>[\d]+)
Invalid route.
Route discovered : /wp/v2/media
Valid route found. Will try to fetch.
Route discovered : /wp/v2/media/(?P<id>[\d]+)
Invalid route.
Route discovered : /wp/v2/types
Valid route found. Will try to fetch.
Route discovered : /wp/v2/types/(?P<type>[\w-]+)
Invalid route.
Route discovered : /wp/v2/statuses
Valid route found. Will try to fetch.
Route discovered : /wp/v2/statuses/(?P<status>[\w-]+)
Invalid route.
Route discovered : /wp/v2/taxonomies
Valid route found. Will try to fetch.
Route discovered : /wp/v2/taxonomies/(?P<taxonomy>[\w-]+)
Invalid route.
Route discovered : /wp/v2/categories
Valid route found. Will try to fetch.
Route discovered : /wp/v2/categories/(?P<id>[\d]+)
Invalid route.
Route discovered : /wp/v2/tags
Valid route found. Will try to fetch.
Route discovered : /wp/v2/tags/(?P<id>[\d]+)
Invalid route.
Route discovered : /wp/v2/users
Valid route found. Will try to fetch.
Route discovered : /wp/v2/users/(?P<id>[\d]+)
Invalid route.
Route discovered : /wp/v2/users/me
Valid route found. Will try to fetch.
Route discovered : /wp/v2/comments
Valid route found. Will try to fetch.
Route discovered : /wp/v2/comments/(?P<id>[\d]+)
Invalid route.
Route discovered : /wp/v2/settings
Valid route found. Will try to fetch.
Added ACF Options route.

Fetching the JSON data from 25 valid API Routes...

=== [ Fetching wordpress__yoast_v1 ] === https://dustinhorton.com/gatsby-wp/wp-json/yoast/v1
⠈ source and transform nodes -> wordpress__yoast_v1 fetched : 1
Fetching the wordpress__yoast_v1 took: 936.166ms

=== [ Fetching wordpress__yoast_configurator ] === https://dustinhorton.com/gatsby-wp/wp-json/yoast/v1/configurator
⢀ source and transform nodesThe server response was "401 Unauthorized"
Inner exception message : "Sorry, you are not allowed to do that."
Fetching the wordpress__yoast_configurator took: 846.014ms

=== [ Fetching wordpress__yoast_reindex_posts ] === https://dustinhorton.com/gatsby-wp/wp-json/yoast/v1/reindex_posts
⢀ source and transform nodesThe server response was "401 Unauthorized"
Inner exception message : "Sorry, you are not allowed to do that."
Fetching the wordpress__yoast_reindex_posts took: 1010.589ms

=== [ Fetching wordpress__yoast_ryte ] === https://dustinhorton.com/gatsby-wp/wp-json/yoast/v1/ryte
⠠ source and transform nodesThe server response was "401 Unauthorized"
Inner exception message : "Sorry, you are not allowed to do that."
Fetching the wordpress__yoast_ryte took: 1022.977ms

=== [ Fetching wordpress__yoast_statistics ] === https://dustinhorton.com/gatsby-wp/wp-json/yoast/v1/statistics
⠄ source and transform nodesThe server response was "401 Unauthorized"
Inner exception message : "Sorry, you are not allowed to do that."
Fetching the wordpress__yoast_statistics took: 820.827ms

=== [ Fetching wordpress__acf_posts ] === https://dustinhorton.com/gatsby-wp/wp-json/acf/v3/posts
⠈ source and transform nodes -> wordpress__acf_posts fetched : 100
Fetching the wordpress__acf_posts took: 6352.670ms

=== [ Fetching wordpress__acf_pages ] === https://dustinhorton.com/gatsby-wp/wp-json/acf/v3/pages
⡀ source and transform nodes -> wordpress__acf_pages fetched : 34
Fetching the wordpress__acf_pages took: 2760.048ms

=== [ Fetching wordpress__acf_media ] === https://dustinhorton.com/gatsby-wp/wp-json/acf/v3/media
⠈ source and transform nodes -> wordpress__acf_media fetched : 100
Fetching the wordpress__acf_media took: 4273.250ms

=== [ Fetching wordpress__acf_categories ] === https://dustinhorton.com/gatsby-wp/wp-json/acf/v3/categories
⠁ source and transform nodes -> wordpress__acf_categories fetched : 13
Fetching the wordpress__acf_categories took: 1029.029ms

=== [ Fetching wordpress__acf_tags ] === https://dustinhorton.com/gatsby-wp/wp-json/acf/v3/tags
⠈ source and transform nodes -> wordpress__acf_tags fetched : 0
Fetching the wordpress__acf_tags took: 941.066ms

=== [ Fetching wordpress__acf_comments ] === https://dustinhorton.com/gatsby-wp/wp-json/acf/v3/comments
⢀ source and transform nodes -> wordpress__acf_comments fetched : 9
Fetching the wordpress__acf_comments took: 2868.036ms

=== [ Fetching wordpress__acf_users ] === https://dustinhorton.com/gatsby-wp/wp-json/acf/v3/users
⠠ source and transform nodes -> wordpress__acf_users fetched : 11
Fetching the wordpress__acf_users took: 2049.181ms

=== [ Fetching wordpress__POST ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/posts
⠁ source and transform nodes
Total entities : 9094
Pages to be requested : 91
⠁ source and transform nodes -> wordpress__POST fetched : 9094
Fetching the wordpress__POST took: 152767.807ms

=== [ Fetching wordpress__PAGE ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/pages
⢀ source and transform nodes -> wordpress__PAGE fetched : 34
Fetching the wordpress__PAGE took: 2194.895ms

=== [ Fetching wordpress__wp_media ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/media
⢀ source and transform nodes
Total entities : 7504
Pages to be requested : 76
⢀ source and transform nodes -> wordpress__wp_media fetched : 7485
Fetching the wordpress__wp_media took: 132029.996ms

=== [ Fetching wordpress__wp_types ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/types
⢀ source and transform nodes -> wordpress__wp_types fetched : 1
Fetching the wordpress__wp_types took: 956.603ms

=== [ Fetching wordpress__wp_statuses ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/statuses
⢀ source and transform nodes -> wordpress__wp_statuses fetched : 1
Fetching the wordpress__wp_statuses took: 1017.845ms

=== [ Fetching wordpress__wp_taxonomies ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/taxonomies
⠠ source and transform nodes -> wordpress__wp_taxonomies fetched : 1
Fetching the wordpress__wp_taxonomies took: 1029.885ms

=== [ Fetching wordpress__CATEGORY ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/categories
⢀ source and transform nodes -> wordpress__CATEGORY fetched : 14
Fetching the wordpress__CATEGORY took: 943.710ms

=== [ Fetching wordpress__TAG ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/tags
⠠ source and transform nodes -> wordpress__TAG fetched : 19
Fetching the wordpress__TAG took: 1104.454ms

=== [ Fetching wordpress__wp_users ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/users
⡀ source and transform nodes -> wordpress__wp_users fetched : 11
Fetching the wordpress__wp_users took: 1325.604ms

=== [ Fetching wordpress__wp_me ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/users/me
⠂ source and transform nodesThe server response was "401 Unauthorized"
Inner exception message : "You are not currently logged in."
Fetching the wordpress__wp_me took: 926.146ms

=== [ Fetching wordpress__wp_comments ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/comments
⠂ source and transform nodes
Total entities : 9410
Pages to be requested : 95
⡀ source and transform nodes -> wordpress__wp_comments fetched : 9397
Fetching the wordpress__wp_comments took: 85370.673ms

=== [ Fetching wordpress__wp_settings ] === https://dustinhorton.com/gatsby-wp/wp-json/wp/v2/settings
⠁ source and transform nodesThe server response was "401 Unauthorized"
Inner exception message : "Sorry, you are not allowed to do that."
Fetching the wordpress__wp_settings took: 808.396ms

=== [ Fetching wordpress__acf_options ] === http://dustinhorton.com/gatsby-wp/wp-json/acf/v2/options
⠂ source and transform nodesThe server response was "404 Not Found"
Inner exception message : "No route was found matching the URL and request method"
Fetching the wordpress__acf_options took: 1059.276ms

=END PLUGIN=====================================: 412457.896ms
⠁ source and transform nodes

وقد ظل جالسًا هناك لمدة 8 ساعات تقريبًا.

dustinhorton ما نوع الاستضافة التي تستخدمها؟ أعتقد أنه فقط يقتل صندوق الإنتاج الخاص بك مع كمية الطلبات. أعتقد أنني حصلت على الانتهاء (بعد مرور بعض الوقت ، وليس ثماني ساعات) تعيين اتصالات متزامنة لشيء منخفض ، مثل 1 أو 2.

إنه خادم VPS لائق على Linode. يمكنني تعديل الإعدادات إذا كان ذلك سيساعد. لكن القضية تحدث محليًا أيضًا.

https://github.com/gatsbyjs/gatsby/blob/46290c2b0e7894fca036bdcc658a5d1936c4221f/packages/gatsby-source-filesystem/src/create-remote-file-node.js#L133 -L159 هذا المبلغ لا يعمل أحيانًا بشكل صحيح عدد الملفات - يتم حل طلب الشبكة ولكن دفق كتابة الملف لا ينتهي أبدًا (أو تنتهي الأخطاء). أعتقد أنه سيكون من الرائع إضافة نوع من المهلة بعد الانتهاء من responseStream لانتظار fsWriteStream للانتهاء ، وإذا لم يحدث ذلك وقم بتدمير جميع الموارد ومحاولة كتابة الملف مرة أخرى (ربما إجراء عدد قليل من المحاولات) وفي الواقع أخطاء عندما لا يتمكن من فعل ذلك في الواقع.

pieh هل يمكنك إرسال الرمز المحدث لهذا الملف من فضلك؟

/packages/gatsby-source-filesystem/src/create-remote-file-node.js

@ aman-developer لا يوجد حل لهذا بعد - وإلا سيتم نشره. المشكلة في هذه المشكلة هي أنه لا توجد طريقة موثوقة لإعادة إنتاج هذا ، لذا فإن أي إصلاحات هي تخمينات. تكمن المشكلة في بعض الحالات (قد تكون خاصة بالأجهزة و / أو أنظمة التشغيل) ، لا تنتهي عملية الكتابة في نظام الملفات ، وتتعطل دون حدوث أخطاء ، لذا فإن أي إصلاح هنا يحاول حقًا حل المشكلات في fs package / Hardware / os غير موثوق: /

هل واجهت مشاكل في إعادة الشراء مع الريبو والموقع الخاص بي؟ إنه متسق بالنسبة لي.

أستخدم createRemoteFileNode لجلب الصور البعيدة وأواجه نفس المشكلة: توقف التنزيل عند حوالي 680/780ish.

في createRemoteFileNode ، يوجد مستمع لحدث downloadProgress الذي تمت إضافته في https://github.com/sindresorhus/got/releases/tag/v8.0.0 ولكن استخدامات gatsby-source-filesystem حصلت على 7.1.0.

حاولت الترقية إلى أحدث إصدار 9.2.2 ويمكن الآن تنزيل جميع الصور بنجاح.

أضف هذا في package.json:

  "resolutions": {
    "got": "^9.2.2"
  }

يبدو أيضًا أن هناك بعض الإصلاحات المهمة التي تم الحصول عليها بعد 7.1.0 مثل عدم إعادة توجيه أخطاء البث بشكل صحيح ، وما إلى ذلك (https://github.com/sindresorhus/got/releases/tag/v8.0.1)

حاولت تحديث got ، لكن ما زلت أتعثر في بعض الأحيان ، لكن الأمر يستحق القيام بذلك على أي حال. فقط لاحظ أن عناصر downloadProgress ستحتاج إما إلى التعطيل أو بعض المخرجات الأفضل ، نظرًا لأن الجهاز الطرفي / وحدة التحكم تحصل على رسائل غير مرغوب فيها مع التقدم عند استخدام ذلك

تمكنت من تشغيل gatsby develop بعد حوالي 25 دقيقة ولكن كان علي تقليل التزامن في create-remote-file-node.js من 200 إلى 20. حصلت بالفعل على 22 TimeoutErrors (ولكن أعيد تنزيلها عند تنفيذ تطوير gatsby مرة أخرى) بعد وضع السجلات في ذلك المصيد الفارغ في العملية

لست متأكدًا مما إذا كان ذلك بسبب الحصول ولكن ربما يمكنك تجربة عملاء http الآخرين ...

...
success source and transform nodes — 1407.531 s
success building schema — 3.315 s
success createPages — 0.571 s
success createPagesStatefully — 2.797 s
success onPreExtractQueries — 0.012 s
success update schema — 3.268 s
warning There are conflicting field types in your data. GraphQL schema will omit those fields.
wordpress__wp_media.media_details.width:
 - type: number
   value: 916
 - type: string
   value: '224'
wordpress__wp_media.media_details.height:
 - type: number
   value: 916
 - type: string
   value: '225'
wordpress__wp_media.media_details.sizes.thumbnail.width:
 - type: number
   value: 150
 - type: string
   value: '150'
wordpress__wp_media.media_details.sizes.thumbnail.height:
 - type: number
   value: 150
 - type: string
   value: '150'
wordpress__wp_media.media_details.sizes.medium.width:
 - type: number
   value: 300
 - type: string
   value: '300'
wordpress__wp_media.media_details.sizes.medium.height:
 - type: number
   value: 300
 - type: string
   value: '200'
wordpress__wp_media.media_details.sizes.large.width:
 - type: number
   value: 768
 - type: string
   value: '1024'
wordpress__wp_media.media_details.sizes.large.height:
 - type: number
   value: 1024
 - type: string
   value: '682'
wordpress__wp_media.media_details.image_meta.aperture:
 - type: number
   value: 2.2
 - type: string
   value: '0'
wordpress__wp_media.media_details.image_meta.created_timestamp:
 - type: boolean
   value: false
 - type: number
   value: 1433226914
 - type: string
   value: '0'
wordpress__wp_media.media_details.image_meta.focal_length:
 - type: number
   value: 0
 - type: string
   value: '0'
wordpress__wp_media.media_details.image_meta.iso:
 - type: number
   value: 0
 - type: string
   value: '0'
wordpress__wp_media.media_details.image_meta.shutter_speed:
 - type: number
   value: 0
 - type: string
   value: '0'
wordpress__wp_media.media_details.image_meta.orientation:
 - type: number
   value: 1
 - type: string
   value: '1'
warning Using the global `graphql` tag is deprecated, and will not be supported in v3.
Import it instead like:  import { graphql } from 'gatsby' in file:
/Users/tandingan.wlb/Projects/gatsby/gatsby-issue/src/templates/Post/Post.js
success extract queries from components — 0.120 s
success run graphql queries — 223.335 s — 9121/9121 40.84 queries/second
success write out page data — 0.119 s
success write out redirect data — 0.001 s
success onPostBootstrap — 0.027 s

info bootstrap finished - 1643.854 s
{ TimeoutError: Timeout awaiting 'request' for 30000ms
    at Immediate.timeoutHandler [as _onImmediate] (/Users/tandingan.wlb/Projects/gatsby/gatsby-issue/node_modules/got/source/timed-out.js:39:25)
    at runCallback (timers.js:694:11)
    at tryOnImmediate (timers.js:664:5)
    at processImmediate (timers.js:646:5)
  name: 'TimeoutError',
  code: 'ETIMEDOUT',
  host: 'dustinhorton.com',
  hostname: 'dustinhorton.com',
  method: 'GET',
  path: '/gatsby-wp/wp-content/uploads/2015/05/20150302_061259.jpg',
  socketPath: undefined,
  protocol: 'https:',
  url:
   'https://dustinhorton.com/gatsby-wp/wp-content/uploads/2015/05/20150302_061259.jpg',
  event: 'request' }

أحصل على نفس الأخطاء مع المنشور

لقد قمت بالترقية إلى "حصلت": "^ 9.2.2" الآن تعمل حورة!

بالتأكيد بحاجة إلى إلقاء نظرة لترقية إصدارنا got . هذه مشكلة تقطع لذا قد تكون مصادفة أنها نجحت. RobinHerzog ، يرجى إخبارنا إذا كنت ستواجه مشكلات مماثلة مع الإصدار الذي تمت ترقيته من got

أدى تحديث got إلى تقليل وقت إنشاء repro الخاص بي بشكل كبير ، ولكن لا يزال يستغرق ما يقرب من ساعة في آخر مرة حاولت.

dustinhorton ما هو جزء الإصدار الذي كان يسحب الصور (أو source and transform data لأننا لا نعرض بشكل صريح الوقت الذي يستغرقه تنزيل الملفات)؟

لدي صور بحجم 150 ميجابايت مع اتصال إنترنت 1 جيجابايت. إنه يعمل الآن. أحتاج إلى 30 ثانية للتنزيل ومتابعة البناء.

أواجه هذه المشكلة باستمرار. لم تنجح ترقية got حل هذه المشكلة. أي نجاح في إضافة تتبع إضافي إلى وورد-وورد حتى نتمكن من محاولة تصحيح ما هي المشكلة؟

حاولت تغيير concurrentRequests و perPage ، بالإضافة إلى ترقية got إلى أحدث إصدار ، لكن لم ينجح أي منها. الآن يمكنني جلب categories ، posts ، pages و tags ، لكن عندما أقوم بتضمين users أو media ، مباشرة بعد =END PLUGIN=== ، يعود المكون الإضافي بخطأ: TypeError: Cannot read property 'id' of undefined .

إذا قمت بتضمين جميع المسارات والقائمة السوداء التي لا يمكنني الوصول إليها ، فسأحصل على =END PLUGIN=== لكنها لا تنتهي أبدًا ... هذا ينطبق على العديد من مواقع الويب التي اختبرتها ، لذلك أعتقد أنه قد يكون نظامي بطريقة ما . إذا أراد أي شخص اختبار هذا ، فإليك التكوين:

    {
      resolve: 'gatsby-source-wordpress',
      options: {
        // Other URLs I tried:
        // https://clubedovalor.com.br
        // http://rivainvestimentos.com.br
        // http://queroinvestiragora.com/
        // https://www.clubedospoupadores.com/
        baseUrl: "aprenda.guiainvest.com.br",
        protocol: "https",
        hostingWPCOM: false,
        useACF: false,
        concurrentRequests: 10,
        perPage: 50,
        // Going with the excluded routes path
        // excludedRoutes: [
        //   '/*/*/plugins',
        //   '/rock-convert/**',
        //   '/yoast/**',
        //   '/wp-super-cache/**',
        //   '/*/*/users/me',
        //   '/*/*/settings',
        // ],
        verboseOutput: true,
        includedRoutes: [
          "/*/*/categories",
          "/*/*/posts",
          "/*/*/pages",
          "/*/*/tags",
          // You can toggle between media and users (or both)
          // All 3 scenarios will fail with the `'id' of undefined`
          // problem
          // "/*/*/media",
          "/*/*/users",
        ],
      },

ملاحظة: عنوان URL واحد تمكنت من جلبه هو https://wesbos.com/

تحديث سعيد: تمكنت من جعله يعمل (_ للمواقع الأصغر_) باستخدام includedRoutes ، حتى مع users و / أو media خلال تضمين taxonomies في الاستعلام . الآن لا أحصل على الخطأ 'id' of undefined : D

pieh أعتقد أن users و media تعتمد على taxonomies ، لذلك ربما يجب أن تأتي بشكل افتراضي عندما يكون التكوين يحتوي على أي من هذين النوعين؟ اسمحوا لي أن أعرف إذا كان بإمكاني تقديم المزيد من المساعدة في استكشاف الأخطاء وإصلاحها! كملاحظة ختامية ، يبدو أن هذا الخطأ taxonomies غير مرتبط بعملية الإنشاء اللانهائية. مع المواقع التي يزيد حجمها عن 500 ملف وسائط ، ما زلت غير قادر على إنهاء عملية الإنشاء!

التحديث رقم 2 : لقد تمكنت من جعله يعمل مقابل queroinvestiragora.com ، والذي يحتوي على 600 ملف وسائط ولكن 70 منشورًا فقط ، يستغرق الأمر حوالي 15 ثانية بعد =END PLUGIN=== ، لكنه يعمل. ومع ذلك ، يحتوي www.clubedospoupadores.com على 702 ملف وسائط و 336 منشورًا ولن يتم تجميعها.

ملاحظة: التكوين الخاص بي في هذه التجارب هو:

    {
      resolve: 'gatsby-source-wordpress',
      options: {
        baseUrl: "queroinvestiragora.com",
        protocol: "http",
        hostingWPCOM: false,
        useACF: false,
        concurrentRequests: 10, // I've also tried removing it and going with the default, it's the same result
        verboseOutput: true,
        includedRoutes: [
          "/*/*/categories",
          "/*/*/posts",
          "/*/*/pages",
          "/*/*/tags",
          "/*/*/media",
          "/*/*/users",
          "/*/*/taxonomies",
        ],
      },
    },

مرحبا،

تمكنت من إضافة التتبع باستخدام الخطوات الموضحة هنا https://www.gatsbyjs.org/docs/performance-tracing/ . لسوء الحظ ، لم يقدم الكثير من المعلومات لأنه أخبرني ببساطة أن مصدر العقد وتحويله يستغرق وقتًا طويلاً.

ومع ذلك ، فقد أجريت بعض عمليات التصحيح الخاصة بي بشأن هذه المشكلة بعد وجود بعض السلوك غير الحتمي الذي يتضمن الصور. عند تشغيل البرنامج النصي إما تطوير أو إنشاء ، سأحصل على حالة حيث لن يتم تنزيل جميع الصور ولن تكتمل عُقد الملف المحلي. بعد البحث في الكود ، قررت أنه يبدو أن هناك مشكلة هنا

https://github.com/gatsbyjs/gatsby/blob/ad142af473fc8dc8555a5cf23a0dfca42fcbbe90/packages/gatsby-source-wordpress/src/normalize.js#L483 -L506

بالنسبة لي ، كانت عقدة createRemoteFile تفشل بسبب أخطاء انتهاء مهلة الخادم والافتراضيات لإرجاع القيمة فارغة. اضطررت إلى إضافة بعض التسجيل إلى عقدة createRemoteFile أيضًا لتحديد ذلك والحصول على استجابات الخادم الفعلية. نظرًا لأن هذه العقد لا تكتمل ولا تحتوي على معرفات ، فلن يتم تسجيلها في ذاكرة التخزين المؤقت. يتم حذف ملفات tmp وكان نظام ملفات جاتسبي المصدر غير مكتمل. لأي سبب (لم أنظر إلى هذا الحد بعد) عند تشغيل سكربت البناء مرة أخرى ، تم حذف نظام الملفات المصدر على الأرجح لأن البرنامج النصي اكتشف أن نظام الملفات غير صالح أو غير مكتمل. كانت هذه العملية هي التي كانت تنشئ حلقة وتسبب أخطاء في البنيات المستقبلية لأن نظام الملفات لا يكتمل أبدًا.

أنا أعمل على إصلاح يبدو أنه يخفف من بعض المشكلات على الأقل فيما يتعلق بكميات كبيرة من الصور. عندما ينجح تطوير أو بناء البرنامج النصي في تنزيل جميع الصور في المرة الأولى ، لا يتم حذفه بعد ذلك ، ثم تحدث عملية الإنشاء بسرعة كبيرة حيث يتم تخزين الصور مؤقتًا بشكل صحيح بواسطة gatsby-source-filesystem! انتقل بنياني من 15 دقيقة إلى دقيقة واحدة.

لست متأكدًا مما إذا كان هذا مرتبطًا بالبنيات التي تحتوي على كميات كبيرة من المشاركات. كانت مشكلتي مرتبطة مباشرة بتنزيل 1.6 غيغابايت من بيانات الصورة.

هذه هي المرة الأولى التي أعمل فيها مع المكونات الإضافية المصدر لـ gatsby ، لذا إذا كان لدى أي شخص أي أفكار أو نصيحة بخصوص هذا ، سأكون ممتنًا لذلك! يجب أن أكون قادرًا على نشر الريبو الخاص بي في وقت لاحق اليوم ، فأنا أعمل على الحصول عليه لاستخدام إصداري المحلي من نظام ملفات gatsby-source-files دون تعقيدات.

مرحبا،

متابعة تعليقي من قبل أيام قليلة. هنا الريبو الخاص بي.

https://github.com/njmyers/byalejandradesign.com.git

أنا أستخدم monorepo في هذا المشروع ، لذا إليك بعض الخطوات إذا كنت تريد تشغيل المستودع محليًا.

  1. تأكد من أن لديك أحدث إصدار من Yarn 1.12.3
  2. استنساخ فرع البرنامج المساعد git clone https://github.com/njmyers/byalejandradesign.com.git -b wordpress-plugin
  3. قم بتشغيل yarn && yarn bootstrap
  4. انتقل إلى مجلد gatsby حتى تتمكن من إلقاء نظرة على هذا المجلد cd packages/web
  5. قم بتشغيل yarn develop أو yarn build-web . يجب أن يكتمل بنجاح في المرة الأولى وستؤدي عمليات التشغيل اللاحقة لنفس الأمر إلى إنشاءات أسرع بكثير! تأخذ عقد المصدر والتحويل 222 ثانية بالنسبة لي حيث كانت تستغرق 3 مرات في وقت سابق و / أو لم تكتمل.
  6. إذا كنت تريد أن ترى ما يحدث بالفعل أثناء المصدر والتحويل ، يمكنك البحث في متصفح الملفات الخاص بك على /packages/web/.cache/gatsby-source-filesystem سترى أنه يتم إنشاء الملفات هناك.

أعدت كتابة وظيفة downloadMediaFiles بالكامل. يمكنك رؤية هذا الملف على هذا الرابط https://github.com/njmyers/byalejandradesign.com/blob/wordpress-plugin/packages/gatsby-source-wordpress/src/download-media-files.js

ربما يكون الأمر أكثر تفصيلاً مما يجب أن يكون ، لكن كان علي القيام بذلك لمعرفة كل ما يحدث. الوظيفة التي قمت بتغييرها تضيف رفض الوعد عندما ترجع createRemoteFileNode فارغة. ثم أستخدم وظيفة downloadRunner لخفض الطلبات حتى لا تصل جميعها إلى الخادم مرة واحدة وكذلك إعادة المحاولة عند رفض الوعد. لقد أضفت خنق 200 مللي ثانية بين كل طلب createRemoteFileNode. أنا متأكد من أنه يمكن تعديل هذه القيمة وقد يكون بعضها مناسبًا بشكل أفضل للإضافة إلى createRemoteFileNode مباشرة.

إذا كان أي شخص يشعر بالفضول ، فإن تثبيت WP هو مثيل EC2 micro أثناء وجود الصور خلف توزيع CloudFront. أنا شخصياً لم أواجه أي مشكلة في الحصول على مشاركات كانت مشكلتي تتعلق بالحصول على الصور وأعتقد أن معظم المشكلات التي يواجهها الأشخاص ترجع إلى هذا.

وأيضًا إذا أراد أي شخص تتبع موقعه أو تصحيح أخطاءه ، أقترح البدء هنا ...

https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-filesystem/src/create-remote-file-node.js#L240 -L244

أضفت التسجيل إلى جملة catch وتمكّنت من تحديد أن عُقد الصورة لم تتم معالجتها بشكل صحيح لأنني كنت أتلقى أخطاء انتهاء المهلة ثم أعود فارغة.

njmyers لقد قمت للتو بإلقاء نظرة نجح هذا ، فيجب علينا استخدام نهج مماثل في createRemoteFileNode مباشرة. نحن نستخدم queue هناك ، لذلك لا داعي للقلق بشأن هذا الأمر بالنسبة للمستهلكين لهذه الوظيفة ( gatsby-source-wordpress في هذه الحالة). الشيء الوحيد الذي يحتمل أن يكون مشكلة هو أن 200 مللي ثانية من الخانق - ربما يمكننا البدء بدونه وعندما نبدأ في رؤية المشكلات يتم تطبيق الاختناق تلقائيًا (لكل اسم مضيف)

pieh نعم ربما يكون هذا هو المكان المناسب لتطبيق هذا المنطق. كان الاختناق بالنسبة لي وسيلة للتعامل مع هذا وتشخيص المشكلة ، لذلك أوافق على أن createRemoteFileNode يجب أن يكون قادرًا على التعامل مع هذا بمفرده.

لكن المشكلة بشكل خاص هي السلوك الحالي المتمثل في فشل الأخطاء بصمت وإرجاع القيمة الفارغة. في رأيي يجب أن يكون هناك بعض الاتصالات حول فشل أو نجاح العملية. أعتقد أنه يمكن جعل createRemoteFileNode أكثر قوة مع الوظائف التالية.

1) إنشاء اتصالات بشغف
2) إذا كانت هناك أخطاء من الخادم ، فابدأ في الاختناق و / أو إعادة المحاولة إذا لزم الأمر
3) تعيين بعض الافتراضات العقلانية للاختناق / إعادة المحاولة
4) إنشاء نقطة دخول لضبط الاختناق / إعادة المحاولة
4) رفض الوعد إذا تعذرت معالجة العقدة لسبب ما.

أستطيع أن أقول أيضًا أنني لعبت مع قيم المهلة هنا https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-filesystem/src/create-remote-file-node.js#L135 - L141. على الرغم من أن ذلك زاد من احتمالية نجاح الاستجابة ، إلا أنه لا يزال يتعين علي إضافة معالجة لضمان استجابة ناجحة.

على الأرجح ستكون نقطة الدخول الصحيحة لهذا المنطق هنا.

https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-filesystem/src/create-remote-file-node.js#L259 -L269

في حالة فشل المهام ، تتم إعادة المحاولة و / أو الفشل ثم رفضها نهائيًا.

اقرأ أيضًا بإيجاز مستندات queue . أرى ما تقوله حول قدرة queue على إدارة هذا بنفسه.

njmyers عمل تحقيق لطيف! توافق بالتأكيد على أن تنزيل الملف يجب أن يكون أكثر ذكاءً!

قد يكون من الجيد بالفعل استخراج جزء تنزيل الملف إلى الحزمة الخاصة به التي تركز على مشكلة تنزيل الملفات البعيدة وتخزينها مؤقتًا.

هناك فرصة جيدة لأننا سنحتاج إلى استخدام الوظيفة في أماكن متعددة في Gatsby والمستقبل وهو شيء قد يرغب الأشخاص الآخرون على الإنترنت في استخدامه أيضًا.

KyleAMathews تقصد استخراج createRemoteFileNode لحزمة منفصلة؟

ليس فقط جزء تنزيل الملف والتخزين المؤقت. عندئذٍ تقوم createRemoteFileNode باستدعاء هذه الحزمة والحصول على وعد يتم حله عند تنزيل الملف (أو إعادته من ذاكرة التخزين المؤقت).

أواجه هذه المشكلة مع البرنامج المساعد لمصدر قمرة القيادة الخاص بي أيضًا.

أرى أن الأمر سيكون أشبه باستخراج هذه الأجزاء من التعليمات البرمجية إلى حزمة منفصلة ...

https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-filesystem/src/create-remote-file-node.js#L125 -L244

يبدو أن هذا هو الكود الذي يتعامل بشكل خاص مع التنزيل والتخزين المؤقت ، يرجى تصحيحه إذا كنت مخطئًا. سعيد للعمل على هذا! مجرد محاولة لمعرفة كيفية عملها في النظام البيئي الأكبر.

هل سيتم قبول العلاقات العامة لإصلاح gatsby-source-wordpress فقط ، ثم استخراج الإصلاح بعد ذلك؟ تواجه مشكلة في استخدام المكون الإضافي njmyers forked كما هو ، ويبدو أنه تحسن كبير.

dustinhorton لست متأكدًا مما إذا كان هذا

https://github.com/njmyers/byalejandradesign.com/blob/d56b1938f6d1bc22c3cf2282bb3198e378fe3561/packages/web/gatsby-config.js#L91 -L94

ما زلت سعيدًا بالعمل على هذه المشكلة وحتى المكون الإضافي الجديد كما تمت مناقشته. مجرد البحث عن القليل من الإرشادات حول كيفية دمج هذا لأنه يبدو وكأنه تغيير مدمر يمكن أن يؤثر على العديد من الأشياء الأخرى التي لست على علم بها. KyleAMathews أي أفكار؟ ما زلت أشعر كما لو أن الرمز هنا

https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-source-filesystem/src/create-remote-file-node.js#L125 -L244

هو الجزء الذي يجب استخراجه في عبوته الخاصة. ومع ذلك ، فهي إحدى الوظائف الأساسية لـ createRemoteFileNode وأريد أن أتأكد من أنني أعمل عليها بشكل صحيح حتى يمكن دمجها مرة أخرى في النظام البيئي بشكل صحيح.

njmyers أنت على صواب في الغالب مع اختيار الكود الخاص بك - نود أيضًا نقل قائمة الانتظار الحالية (التي تحد أجهزة الصراف الآلي لـ 200 طلب متزامن ، والتي لا تبدو رائعة للمطورين المحليين وعلى ما يبدو للووردبريس) وربما تغيرت.

dustinhorton أعتقد أنه من المعقول استخدام هذا في البرنامج المساعد ووردبريس أولاً (غالبًا لأنه يتم عمليًا).

pieh شكرا للتوضيح الخاص بك! سأبدأ العمل على مكون إضافي جديد.

فيما يتعلق بإصلاح مصدر ووردبرس مؤقتًا ، سيكون سؤالي الآخر الوحيد هو ما يجب القيام به هنا

https://github.com/njmyers/byalejandradesign.com/blob/d56b1938f6d1bc22c3cf2282bb3198e378fe3561/packages/gatsby-source-wordpress/src/download-media-files.js#L169 -L173

في الوقت الحالي ، لا يزال من الممكن وجود أخطاء في الشبكة ويجب أن يكون هناك شرط التقاط لوظيفة downloadMediaFiles بأكملها. ما هو السلوك الطبيعي لتمرير الأخطاء إلى غاتسبي؟ سأكون سعيدًا لإضافة هذا الرمز إلى البرنامج المساعد ووردبريس لتمرير أخطاء الشبكة بشكل صحيح إلى المعالج الصحيح. ربما يمكننا عرض رسالة خطأ وإشارة إلى هذه المشكلة؟ شكرا لمساعدتك!

njmyers شكرًا - نعم ، كنت أقوم بتكرار package.json ). تشغيل develop أعطى أخطاء كما لو لم يكن هناك gatsby-source-wordpress . سأعطيها مرة أخرى هنا قريبًا.

تم إعادة إنشاء monorepo الخاص بك بأمانة ، والغريب أنه يجلس عند source and transform nodes ، كما كان مع gatsby-source-wordpress غير المتشعب قبل خفض مستوى الاعتماد.

pieh قادرة على الرد على سؤاله @ https://github.com/gatsbyjs/gatsby/issues/6654#issuecomment -442536931؟

dustinhorton نعم ، يجب أن تظل جالسًا هناك لبعض الوقت أيضًا إذا كان لديك الكثير من الصور. ستقوم مفترقتي بإلقاء unhandled promise rejection إذا فشل تنزيل ملف بعيد. لهذا السبب أود أن أكون قادرًا على الحصول على آلية ما للتعامل بشكل صحيح مع هذا السيناريو.

أعتقد أنني قرأت في سلسلة رسائل أخرى أيضًا أنه كان هناك حديث عن دمج نوع من مدير التقدم أيضًا لأن هذا سيوفر ملاحظات حول حالة المكون الإضافي.

إذا نظرت في نظام ملفات نظام التشغيل الخاص بك ضمن نظام الملفات project-root / .cache / gatsby-source-filesystem ، فيجب أن تكون قادرًا على رؤية جميع الصور التي يتم تنزيلها. في حالتي ، هناك ما يقرب من 400 صورة الآن ، لذلك يستغرق الأمر بعض الوقت. ومع ذلك ، قبل استخدام الإصدار المتشعب الخاص بي ، سيفشل المكون الإضافي بصمت عند حدوث خطأ ثم لا يتقدم أبدًا مما يتسبب في حدوث مشكلة حيث يستغرق المصدر والتحويل لساعات ...

هل لديك ريبو؟ أود أن أكون قادرًا على تجربته على موقع آخر حتى الآن لقد اختبرته فقط في حالة حقيقية على موقعي.

njmyers That'd القاعدة - إذا كنت لا تمانع ، أرسل لي بريدًا إلكترونيًا:

أدى تحديث got حل جميع المشكلات بالنسبة لي أيضًا.

مشكلة got@9 هي أنها تتطلب Node 8 (https://github.com/sindresorhus/got/releases/tag/v9.0.0) ، لذلك لا يمكننا ترقية ATM :(

يجب أن نكون قادرين على الترقية إلى got@8 على الأقل ، لكنني لست متأكدًا مما إذا كان هذا سيؤدي إلى حل المشكلات

يبدو أن got@8 يطبق التخزين المؤقت HTTP المتوافق مع RFC 7234 ، لذلك يمكن أن يوفر نظام ملفات gatsby-source-source محول ذاكرة التخزين المؤقت لنظام الملفات الخاص به. وهو ما ينبغي على الأقل تقليل الوقت المستغرق في المصدر وتحويل العقد في المرة الثانية نظرًا لأن المورد قابل للتخزين المؤقت.

مرحبا!

لقد ساد الهدوء هذه القضية. الهدوء المخيف. 👻

نتلقى الكثير من المشكلات ، لذلك نقوم حاليًا بإغلاق المشكلات بعد 30 يومًا من عدم النشاط. لقد مرت 20 يومًا على الأقل منذ آخر تحديث هنا.

إذا فاتنا هذه المشكلة أو إذا كنت تريد إبقائها مفتوحة ، فيرجى الرد هنا. يمكنك أيضًا إضافة التصنيف "ليس قديمًا" للإبقاء على هذه المشكلة مفتوحة!

شكرا لكونك جزء من مجتمع غاتسبي! 💪💜

gatsbot لا تزال مشكلة.

طُلب منك المساهمة في مشاركة مدونة لك. لا يمكن أن تفعل ذلك لأنها عالقة في المصدر وتحويل العقد. رأيت المشكلة الأخرى ، لكنني لا أرى أين يوجد حل لهذا. إنه شوكة غاتسبيجس ، الأحدث في المنبع. حصلت على هذا لتشغيل مرة واحدة فقط. انها دائما عالقة تحويل العقد.

فشل في الحصول على لقطات شاشة من مواقع قليلة أثناء البناء. سأضيف المواقع المخالفة في الصباح.

@ twhite96 لقد واجهت المشكلة للتو وما نجح بالنسبة لي هو إزالة الملفات المؤقتة التي ما زلت أفتحها (من emacs) ، لست متأكدًا مما إذا كان ذلك سيساعدك أم لا ، لكنه سمح للبناء بالمضي قدمًا.

لذا يبدو أن هذا لا يزال يمثل مشكلة ...

تواجه نفس المشكلة عند استخدام gatsby-source-s3 لسحب 100 صورة وتحويلها بوضوح. أي شخص اكتشف حلا؟

بطريقة ما تم إصلاح مشكلتي (بشكل عشوائي؟). هذه هي الخطوات التي اتخذتها ، لقد قمت بإنشاء دلو s3 جديد به عدد أقل من الصور (للاختبار) ثم حاولت البناء وبنيت بنجاح شديد. ثم قررت العودة ومحاولة الانسحاب من الجرافة الأصلية وفجأة تم بناؤها بنجاح في 49s عندما كانت ستستمر في الأصل لساعات. لا أعرف كيف أدى مجرد التبديل في روابط الجرافة إلى إصلاح الكشك ولكن آمل أن يساعد ذلك شخصًا ما على اكتشافه. ربما يتعلق الأمر بذاكرة التخزين المؤقت؟

أهلا بكم. لقد قمت بتحديث إصدار المكون الإضافي المحلي الذي كنت أستخدمه لموقع به هذه المشكلة. أعتقد أنه تطبيق أفضل لأنه يستخدم "قائمة انتظار أفضل" قبل "createRemoteNode" ويمرر في المعلمة "concurrentRequests". إنها زائدة عن الحاجة إلى حد ما لأن "createRemoteNode" تستخدم بالفعل قائمة انتظار ولكن بغض النظر عن هذا الإصدار يبدو أنه يعمل بشكل جيد مع ترقيات gatsby الأخيرة ويقدم ملاحظات حول تقدم الملفات. سأحاول الحصول على علاقات عامة معًا لهذا الغرض. آسف للتأخير أعلم أنني قلت إنني سأعمل على هذا في وقت سابق لكنني كنت مشغولاً للغاية!

https://github.com/njmyers/byalejandradesign.com/blob/wordpress-plugin/packages/gatsby-source-wordpress/src/download-media-files.js

تضمين التغريدة

شكرا جزيلا. لقد حلت نسختك بعض المشكلات التي كنت أواجهها. لقد جمعت ذلك مع سطر أو سطرين لتصفية تنزيل 25 جيجابايت من ملفات mp3 ، وأنا الآن جاهز!

بالتأكيد لا تزال مشكلة.
كنت أحاول تجميع مشروعي خلال الـ 24 ساعة الماضية. من حوالي 12 محاولة ، نجحت 3 مع المخرجات واتصال WP الفعلي. هل هناك أي حل لهذا؟
راجع للشغل ، لقد حاولت استخدام إصدار njmyers من المكون الإضافي (وظيفة رائعة ، في الواقع!) ، لكن النتائج كانت مختلطة. في بعض الأحيان قد يشتكي من wordpress_parent أو Date وينهار في النهاية ، لكن لا يمكنه معرفة ما يحدث بالفعل مع هذه الأخطاء. في البنيات الأخرى ، توجد أخطاء مختلفة (لكنها تُجمّع ، وهو أمر مثير للاهتمام) ، مما يتسبب في الواقع في حدوث مشكلات في GraphQL.

lucassilvagc هل يمكنك نشر بعض النواتج؟ أنا سعيد لأن الناس يحاولون ويختبرون الفرع. دعنا نجعلها تعمل بشكل أفضل حتى نتمكن من فتح العلاقات العامة!

تضمين التغريدة

نظرة عامة سريعة على ما يحدث:

يعمل موقع الويب الخاص بي حاليًا مع 1940 ملف صور تقريبًا ، ربما يكون خطأ WordPress عن طريق إنشاء ملفات صور متعددة عدة مرات. إذا كنت أستخدم الفانيليا _gatsby-source-wordpress_ ، فستظهر المشكلة على النحو المنشود (هناك بنية "Vanilla" قمت بإنشائها مساء أمس في بيئة بناء أخرى - والتي تعيد نفس المشكلة التي نناقشها حول هذه المشكلة تمامًا. هذا بناء الأعمال ويجمع عند إرجاع جميع ملفات الصور). باستخدام المكون الإضافي الخاص بك (استبدال جميع الملفات داخل node_modules / gatsby-source-wordpress (صححني إذا كنت مخطئا في هذا)) ، تعيدني gatsby Develop_ ما يلي:

TypeError: Cannot read property 'wordpress_parent' of undefined

  - normalize.js:287 entities.map.e
    [amazingtec]/[gatsby-source-wordpress]/normalize.js:287:11

  - Array.map

  - normalize.js:286 Object.exports.mapElementsToParent.entities [as mapElementsToParent]
    [amazingtec]/[gatsby-source-wordpress]/normalize.js:286:12

  - gatsby-node.js:134 Object.exports.sourceNodes
    [amazingtec]/[gatsby-source-wordpress]/gatsby-node.js:134:24


warning The gatsby-source-wordpress plugin has generated no Gatsby nodes. Do you need it?
success source and transform nodes — 299.757 s
success building schema — 10.192 s

بعد فترة قصيرة ، يتم إخراج:

'Cannot query field "allWordpressPage" on type "Query". Did you mean "allSitePage"?',
    locations: [ [Object] ] } ]
error UNHANDLED REJECTION

  TypeError: Cannot read property 'allWordpressPage' of undefined

  - gatsby-node.js:54 graphql.then.result
    C:/Projects/amztec-gtby/amazingtec/gatsby-node.js:54:36

ملاحظة: كان هذا بناء الفانيليا لـ gatsby-source-wordpress الذي تم _ "تحويله" _ إلى ملفك عن طريق استبدال الملفات ، كما قلت أعلاه. أعتقد أن حقيقة عدم تمكنه من الاستعلام عن جميع الصفحات مرتبطة بعدم إنشاء عقد. أريد أيضًا أن تلاحظ أن هذا التصميم يساوي تصميم الفانيليا الخاص بي الذي يعمل عندما لا تظهر هذه المشكلة.

أريد أيضًا أن تلاحظ أن إضافة المسارات يبدو أنها تسبب نفس المشكلة الأولية بالنسبة لي (لأنني أردت تجنب الصفحات المختلفة غير المرتبطة أو ستعرض أخطاء بسبب طبقات الحماية المتعددة فوق WordPress). لا أعرف ما إذا كانت المسارات التي أدرجتها صحيحة أم لا ، أو إذا فقدت شيئًا ما بعد ذلك.

أنا سعيد جدًا بردكم ، فهذه المشكلة تمثل حاليًا انتكاسة كبيرة لمشروعي ويسعدني أنك ما زلت مهتمًا بهذه المشكلة. شكرا جزيلا!

تواجه نفس المشكلة مع أكثر من 400 مشاركة مخصصة مع حقول ACF و 4000 صورة.

لقد قمت بتحديث حصلت وتمكنت من البناء خلال 35 دقيقة

تعذر الإنشاء مرة أخرى بعد أن قمت بتحديث got

كما هو متوقع ، لأن هذا الخطأ لا يزال موجودًا في gatsby-wordpress. 35 دقيقة لتنزيل ومعالجة جميع الصور تظل وقتًا طويلاً جدًا مع مراعاة جميع العوامل (متوسط ​​سرعة الإنترنت ، وقوة المعالجة ، وإجمالي الملفات وما إلى ذلك).
يمكنك محاولة تكييف إصدار njmyers لاستخدامك المحدد ، وسيعمل مثل السحر عند تنزيل كل ملف صورة لديك.

كما هو متوقع ، لأن هذا الخطأ لا يزال موجودًا في gatsby-wordpress. 35 دقيقة لتنزيل ومعالجة جميع الصور تظل وقتًا طويلاً جدًا مع مراعاة جميع العوامل (متوسط ​​سرعة الإنترنت ، وقوة المعالجة ، وإجمالي الملفات وما إلى ذلك).
يمكنك محاولة تكييف إصدار njmyers لاستخدامك المحدد ، وسيعمل مثل السحر عند تنزيل كل ملف صورة لديك.

كان موقعي يعمل بشكل جيد عندما كان لدي عدد صغير من الصور ولكن عندما بدأت في إضافة المزيد يحدث هذا أيضًا.

MWalid كيف يمكنني تحديث got ؟ شكرا.

تحاول البناء طوال اليوم دون نجاح. لديها حوالي 1450 صورة.

لم نتمكن من الانتشار لمدة يومين الآن. هل يمكن لأي شخص أن يساعدني في توجيهي في الاتجاه الصحيح فيما يتعلق بمكان حدوث ذلك في الكود حتى أتمكن من محاولة إيجاد حل؟

لم نتمكن من الانتشار لمدة يومين الآن. هل يمكن لأي شخص أن يساعدني في توجيهي في الاتجاه الصحيح فيما يتعلق بمكان حدوث ذلك في الكود حتى أتمكن من محاولة إيجاد حل؟

هل قمت بترقية التبعية المتداخلة got الخاصة بك لـ gatsby-source-filesystem لاستخدام الإصدار 9.4.0 على الأقل؟

إذا لم يكن كذلك ، يجب أن تضيف:

  "resolutions": {
    "gatsby-source-filesystem/got": "9.4.0"
  }

في مشروعك Gatsby package.json . ثم قم بإزالة node_modules وملفك yarn.lock وقم بالتثبيت مرة أخرى.

ملاحظة: هذه الميزة resolutions تعمل فقط مقابل yarn . npm لم ينفذ هذا بعد.

anagstef شكرا جزيلا

عند تشغيل gatsby develop ، هل هناك طريقة للاحتفاظ بذاكرة التخزين المؤقت المحلية بدلاً من جلب البيانات عن بُعد في كل مرة يتم فيها تشغيل الأمر؟

anagstef يبدو أنه يعمل بشكل أفضل! شكرا على الاكرامية!

الإخراج مطول للغاية عند البناء باستخدام هذا الإصدار من got. هل تعرف ما إذا كان هناك أي طريقة لإزالة هذا؟

nratter أنا سعيد لأنها عملت من أجلك!

نعم ، أعلم أنه مطول جدًا ولا يمكن إيقاف تشغيله. يحطم كل مخرجات وحدة التحكم المفيدة.

بعد بعض التحقيقات التي أجريتها ، أعتقد أن السبب هنا:
https://github.com/gatsbyjs/gatsby/blob/80c7023a8bc23886939205fe52e305277294e6af/packages/gatsby-source-filesystem/src/create-remote-file-node.js#L155

كما ترون ، فإنه يستدعي console.log مع تقدم تنزيل كل ملف في كل مرة يصدر فيها الحدث downloadProgress والذي يحدث عدة مرات في الثانية. لم تكن هذه مشكلة من قبل ، لأن إصدار got القديم لا يطبق الحدث downloadProgress .

ربما يمكننا إصلاحه مع العلاقات العامة؟ يبدو أنه تصحيح أخطاء التعليمات البرمجية المتبقية.

واجهت نفس المشكلة ، وتمسكت بـ "العقد المصدر وتحويل". بعد الكثير من console.logs انتهى بي الأمر بمشكلة انتهاء المهلة مع استرداد ملفات الوسائط من وورد. لم تكن المشكلة هي عدم قدرة الخادم على التعامل معها ، ولكن بالأحرى تحديد معدل Cloudflare ورمي المهلات بعد حوالي 350 طلبًا.

لقد تجاوزت Cloudflare ، وذهبت مباشرة إلى vps ولم أعد أرى "عقد المصدر وتحويله" ، وينتهي بنائي.

كان الحل البديل هو الحصول على Wordpress محلي للاختبار ، والموقع المباشر موجود في netlify ، بينما لم يتسبب نشره في أي مشكلة.

يا رفاق ، لقد تمكنت من إصلاح هذا عن طريق تشغيل طلبات createRemoteFileNode في التسلسل بدلاً من التوازي.

ها هي الوظيفة التي أستخدمها:

/**
 * Map over items array using the fn function but wait for each step to finish before moving to the next one
 */
exports.serialMap = async (items, fn) => {
  const results = []
  for (const item of items) {
    const result = await fn(item)
    results.push(result)
  }
  return results
}

وإليك كيف أستخدمه:

const imageNodes = await serialMap(node.___originalImages, imgUrl => {
  return createRemoteFileNode({
    url: imgUrl,
    parentNodeId: node.id,
    store,
    cache,
    createNode,
    createNodeId,
  })
})

بعد تنزيل الصور ، إليك كيف يبدو المصدر وخطوة التحويل

Downloading remote files [==============================] 1063/1063 156.1 secs 100%
Downloading remote files [==============================] 1064/1064 157.2 secs 100%
Downloading remote files [==============================] 1065/1065 158.4 secs 100%
Downloading remote files [==============================] 1066/1066 159.5 secs 100%
Downloading remote files [==============================] 1067/1067 160.5 secs 100%
Downloading remote files [==============================] 1068/1068 161.5 secs 100%
Downloading remote files [==============================] 1069/1069 162.6 secs 100%
Downloading remote files [==============================] 1070/1070 163.7 secs 100%
Downloading remote files [==============================] 1071/1071 164.9 secs 100%
Downloading remote files [==============================] 1072/1072 166.0 secs 100%
Downloading remote files [==============================] 1073/1073 167.5 secs 100%
Downloading remote files [==============================] 1074/1074 169.2 secs 100%
Downloading remote files [==============================] 1075/1075 171.0 secs 100%
success source and transform nodes — 175.271 s

اتمنى ان تحل مشاكلك ايضا
هتافات

ancashoria أين أضع هذا الرمز؟

ancashoria نعم ، أنا أيضًا غير واضح بشأن مكان وضع هذا الرمز.

هذا لا علاقة له إلى حد ما بالمكوِّن الإضافي gatsby-source-wordpress . لدي الكود أعلاه في gatsby-node.js . الفكرة هي أن إطلاق كل تلك الطلبات بالتوازي تسبب في فشلها ، لذلك كتبت تلك الوظيفة المساعدة لإطلاقها واحدة تلو الأخرى.

أعتقد أن هناك مشكلة مماثلة في gatsby-source-wordpress أيضًا ، لكنني لست على دراية بها.
آسف لا أستطيع أن أكون في مزيد من المساعدة.

يبدو أنه مرتبط بالصور الضخمة واتصالات الإنترنت البطيئة. تمكنت Netlify من إنشاء الموقع ولكن اتصالي المحلي لم يكن لأنه تنزيل 1 ميغا بايت / ثانية فقط مما تسبب في انقضاء المهلة بعد 30 ثانية وفشل على الصورة الكبيرة.

لدي 1 جيجابايت من الألياف وليس لدي صور "ضخمة".

أنا لا أقوم بتحويل صور المدونة محليًا بعد تنزيلها على WordPress ، فأنا ببساطة استخدم عنوان url الخاص بهم. سيكون من الجيد أن يكون هناك إعداد يعطل تنزيل هذه الصور في هذه الحالة.

يا رفاق ، لقد تمكنت من إصلاح هذا عن طريق تشغيل طلبات createRemoteFileNode في تسلسلي بدلاً من متوازي.

نعم ، تستند المشكلة حقًا إلى حقيقة أن createRemoteFileNode يستخدم التزامن 200 وهو أكثر من اللازم بالنسبة لمعظم خوادم WP. لدي صوري على CloudFront وكنت أواجه بعض حدود المعدل هناك.

لقد حاولت إصلاح المشكلة باستخدام إصدار متفرع من المكون الإضافي المصدر لفترة من الوقت ولكن المشكلة في الحقيقة ليست في gatsby-source-wordpress بل في gatsby-source-filesystem . من الناحية المثالية ، سيتمكن مستهلكو الوظيفة createRemoteFileNode من المرور بالتزامن هناك. ثم يمكن أن تجعل المكونات الإضافية خيار التزامن متاحًا في التكوينات الخاصة بهم. ما زلت أرغب في إجراء علاقات عامة لمعالجة هذه المشكلة!

الحل الذي كنت أستخدمه هو مجرد نص بسيط لتعديل الكود داخل node_modules . إنه حقًا هش تمامًا وليس مثاليًا ولكنه اختراق بسيط لتعديل التزامن مباشرة. يستخدم shelljs لذلك من المفترض أن يعمل لمستخدمي windows أيضًا (لم يجرب).

#!/usr/bin/env node
const path = require('path');
const shell = require('shelljs');

const FILE_PATH = path.resolve(
  __dirname,
  // add path to your root dir here,
  'node_modules',
  'gatsby-source-filesystem/create-remote-file-node.js'
);

shell.sed('-i', 'concurrent: 200', 'concurrent: 20', FILE_PATH);

واجهت نفس المشكلة ، وتمسكت بـ "العقد المصدر وتحويل". بعد الكثير من console.logs انتهى بي الأمر بمشكلة انتهاء المهلة مع استرداد ملفات الوسائط من وورد. لم تكن المشكلة هي عدم قدرة الخادم على التعامل معها ، ولكن بالأحرى تحديد معدل Cloudflare ورمي المهلات بعد حوالي 350 طلبًا.

لقد تجاوزت Cloudflare ، وذهبت مباشرة إلى vps ولم أعد أرى "عقد المصدر وتحويله" ، وينتهي بنائي.

كانت هذه بالضبط مشكلتي. كان Netlify يبني بسرعة كبيرة - أقل من دقيقتين. حوالي 30 منشورًا ، مع حوالي 500 صورة مصدر. محليًا لم يكن كل شيء مكتمل ، ببساطة قم بإلغاء تحديد حالة CloudFlare لتكون DNS فقط حل المشكلة على الفور

واجهت نفس المشكلة ، وتمسكت بـ "العقد المصدر وتحويل". بعد الكثير من console.logs انتهى بي الأمر بمشكلة انتهاء المهلة مع استرداد ملفات الوسائط من وورد. لم تكن المشكلة هي عدم قدرة الخادم على التعامل معها ، ولكن بالأحرى تحديد معدل Cloudflare ورمي المهلات بعد حوالي 350 طلبًا.
لقد تجاوزت Cloudflare ، وذهبت مباشرة إلى vps ولم أعد أرى "عقد المصدر وتحويله" ، وينتهي بنائي.

كانت هذه بالضبط مشكلتي. كان Netlify يبني بسرعة كبيرة - أقل من دقيقتين. حوالي 30 منشورًا ، مع حوالي 500 صورة مصدر. محليًا لم يكن كل شيء مكتمل ، ببساطة قم بإلغاء تحديد حالة CloudFlare لتكون DNS فقط حل المشكلة على الفور

أنا أيضا وجدت أن هذا هو الحال. كان لدي سابقًا صورة واحدة تسببت في فشل البناء ورفضت أن Cloudflare هي المشكلة. عادت المشكلة منذ ذلك الحين مؤخرًا ، وكما اقترح amcc ، لم يتم توجيه سجل A عبر Cloudflare إلى حل المشكلة على الفور محليًا أيضًا.

أردت فقط أن أكرر أن هذه ليست مشكلة مصدر WP فقط - كانت تواجه نفس المشكلة مع gatsby-source-prismic ، مما أدى إلى تقليل التزامن في نظام ملفات soure مع

توافق على أنه إذا لم يكن هناك شيء آخر ، فيجب أن يكون التزامن بين نظام الملفات المصدر قابلاً للتهيئة.

njmyers أنا آسف لسؤال هذا ، ولكن كيف يتم تنفيذ هذا الإصلاح بالضبط. ما عليك سوى تشغيل البرنامج النصي قبل الإنشاء أو هل أحتاج إلى الإشارة إلى البرنامج النصي بطريقة ما في عملية الإنشاء ، لأنني أسأل نفسي حاليًا عن كيفية تطبيق هذا الإصلاح محليًا وأيضًا على سبيل المثال netlify.

alexanderwe لا تقلق إنه اختراق سخيف على أي حال. يمكنك تشغيله بعد تثبيت node_modules . لست متأكدًا بنسبة 100٪ ولكن أعتقد أن ملف postinstall في مشروعك package.json سيعمل.

بالنسبة لي ، يتوقف Gatsby عن 50٪ من الوقت في "عقد المصدر وتحويله" عندما أستخدم json مع أكثر من 500 صورة متضمنة. أنا أستخدم gatsby-source-custom-api

يتم استضافة الصور في خادم سريع ومستقر.
اتصال الإنترنت الخاص بي سريع ومستقر أيضًا.

"gatsby": "^2.9.4",
"gatsby-image": "^2.1.4",
"gatsby-plugin-emotion": "^4.0.7",
"gatsby-plugin-sharp": "^2.1.5",
"gatsby-plugin-typography": "^2.2.13",
"gatsby-source-custom-api": "^2.0.4",
"gatsby-transformer-remark": "^2.4.0",
"gatsby-transformer-sharp": "^2.1.21",

ماذا يمكنني أن أفعل لتصحيح ذلك؟

تحدث هذه المشكلة فقط مع gatsby-source-custom-api أو source-wordpress؟

يحدث لي أيضا. لقد جربت كل إصلاح تم اقتراحه ولا يبدو أن أي شيء يعمل. بالتأكيد لن يستخدم Wordpress كخلفية لـ Gatsby مرة أخرى ، على الرغم من أنني سمعت أن الأشخاص يواجهون مشكلات مماثلة مع الخدمات الأخرى أيضًا.

alexanderwe الطريقة الصحيحة لإصلاح ذلك هي تنفيذ التصحيح الذي اقترحهnjmyers
ثم قدم PR آخر إلى gatsby-source-wordpress وآخرين لجعل هذا قابلًا للتكوين بالفعل من مرجعهم في gatsby-config.js

sebastienfi لقد عثرت للتو على هذا https://github.com/gatsbyjs/gatsby/issues/14819#event -2418874313 والالتزام المقابل https://github.com/gatsbyjs/gatsby/commit/90aa24787b32ef9613b6becbfadab6029ec39ce9#diff -18463 يضيف متغير بيئة لتكوين معدل التزامن ، مما أدى إلى حل المشكلة بالنسبة لي. هناك أيضًا مناقشة مستمرة حول متغيرات البيئة مقابل معلمات التكوين: https://github.com/gatsbyjs/gatsby/issues/14636

هل حاولت تعيين GATSBY_CONCURRENT_DOWNLOAD على رقم أقل؟ بشكل افتراضي ، يتم ضبطه على 200.

لينوكس / ماك:
GATSBY_CONCURRENT_DOWNLOAD=5 gatsby build

شبابيك:
setx GATSBY_CONCURRENT_DOWNLOAD 5; gatsby build

تضمين التغريدة
حاولت ، لم يتغير شيء

بالتأكيد له علاقة بنظام الملفات المصدر ، حيث تظهر السجلات أنه تم استرداد الصور بنجاح ... المشكلة لا تزال ضخمة ... لقد تأخرنا في الموعد النهائي ، ونحن نبحث حقًا عن حل لهذا ...

بعد تعيين البرنامج المساعد لمصدر ووردبريس لتصحيح الأخطاء أرى هذا
image
يتم قطع الاتصال دائمًا بين 470-480 ... ولكن ليس في نفس المكان عادةً.

هل يعرف أحد أين يتم تنفيذ هذا في الكود؟

انتهى الأمر بجعله يعمل عن طريق تبديل VPN في منتصف الطريق

هل هناك أي شخص على استعداد لمشاركة الريبو معي وبيانات الاعتماد الخاصة به حتى أتمكن من إعطاء هذا الأمر دورًا ومحاولة العثور على المشكلة؟

لا تتردد في إرسال بريد خاص إلي على

لم يتم إعادة إنشاء الريبو الخاص بي بسهولة في هذه المرحلة - لدي نسخة احتياطية من ديسيبل كما كانت في مكان ما ، ولكن من أجل إنشاء الموقع ، كان علي تقليل كل شهر من المشاركات في منشور واحد ، لسنوات من المحتوى.

أرسل wardpeet إليك بريدًا إلكترونيًا الريبو وارد ([email protected]). أعلمني كيف سيسير الامر.

قامت شركتنا بتغيير شبكة wifi وزادت من عرض النطاق الترددي. اليوم ليس لدي مشكلة في تنزيل الصور .... لكن ما زلت لا أفهم ، هل الشبكة أم التزامن؟

لكن كل البنيات على Netlify تفشل ...

5:13:43 مساءً: === [جلب wordpress__wp_media] === https://wildkiwi.com/wp-json/wp/v2/media
5:13:43 م: إجمالي الكيانات: 1717
5:13:43 م: الصفحات المطلوب طلبها: 344
5:13:45 مساءً: فشل الطلب مع رمز الخطأ "غير محدد"

رمز الخطأ غير محدد ، لذلك لا أفهم حقًا ما يحدث ...

عندما أقوم بتغيير الطلبات المتزامنة إلى 5 فإنه يعمل على Netlify

كنت أواجه هذه المشكلة مع مكون إضافي مختلف (https://github.com/angeloashmore/gatsby-source-prismic) وتعيين GATSBY_CONCURRENT_DOWNLOAD=50 فعل الحيلة.

لقد حدث هذا للتو فجأة (في يوم من الأيام سيتم إنشاء موقع الويب الخاص بي ، وفي اليوم التالي لن يتم ذلك ، بدون أي تغييرات) ، وبدون أي نوع من رسائل الخطأ ، من المزعج قليلاً أن يتم نشر مواقع الويب للعملاء دون أن تكون واثقًا من أن هذا لن يحدث مرة أخرى.

نقوم أساسًا بتنزيل 200 صورة في وقت واحد ولكن قد يكون هذا مشكلة لبعض أجهزة الكمبيوتر / اتصالات الإنترنت. الحل الجيد هو الخبز في بعض آليات إعادة المحاولة.

كنت أواجه هذه المشكلات ، لكنني تمكنت من جعل البناء يعمل بشكل جيد مع مزيج من setx GATSBY_CONCURRENT_DOWNLOAD 5; gatsby build و Smushing جميع الصور (بعضها كان كبيرًا بشكل مفرط في الأبعاد والملف) باستخدام الإصدار المجاني من https: // en-gb.wordpress.org/plugins/wp-smushit/.

مرحبا! أواجه نفس المشكلة مع المكون الإضافي المصدر الذي أقوم بإنشائه (لا علاقة له بـ WordPress) ، وعند تنزيل أكثر من 1000 صورة من واجهة برمجة التطبيقات. يتم تعليقه دائمًا تقريبًا في نهاية العملية.

تعيين GATSBY_CONCURRENT_DOWNLOAD لم يحل المشكلة. حاولت 50 ، 20 ، 5 ، لم يحالفني الحظ.

حصلت على مجموعة من الأحجام من API ، وكنت أستخدم أكبر صورة ، لكنني غيرتها إلى أصغرها ولم أصلحها أيضًا.

من الصعب تحديد سبب فشلها في هذه المرحلة ، الشيء الوحيد الذي أحصل عليه هو source and transform nodes ثم الصمت إلى الأبد.

سيكون من الرائع أن يكون لديك آلية تصحيح لهذا.

كنت أواجه نفس المشكلة في دمج gatsby + Wordress. سيتوقف البناء إلى الأبد في onCreateNode API حيث كنت أستخدم createRemoteFileNode.

الحل: لقد قمت بتحديث نظام ملفات جاتسبي المصدر من 2.0.4 إلى 2.1.8 وأضفت GATSBY_CONCURRENT_DOWNLOAD = 50 إلى متغيرات بيئتي.

مرحبا 👋

لدي مشكلة مماثلة في مشروعي.

بيئة

  System:
    OS: macOS 10.14.6
    CPU: (4) x64 Intel(R) Core(TM) i5-7267U CPU @ 3.10GHz
    Shell: 5.3 - /bin/zsh
  Binaries:
    Node: 10.16.0 - ~/.nvm/versions/node/v10.16.0/bin/node
    Yarn: 1.17.3 - ~/.yarn/bin/yarn
    npm: 6.9.0 - ~/.nvm/versions/node/v10.16.0/bin/npm
  Languages:
    Python: 2.7.15 - /usr/local/bin/python
  Browsers:
    Chrome: 76.0.3809.100
    Firefox: 68.0.1
    Safari: 12.1.2
  npmPackages:
    gatsby: ^2.13.42 => 2.13.42
    gatsby-cli: ^2.7.34 => 2.7.34
    gatsby-image: ^2.2.14 => 2.2.14
    gatsby-plugin-glamor: ^2.1.3 => 2.1.3
    gatsby-plugin-manifest: ^2.2.4 => 2.2.4
    gatsby-plugin-offline: ^2.2.4 => 2.2.4
    gatsby-plugin-react-helmet: ^3.1.5 => 3.1.5
    gatsby-plugin-sass: ^2.1.10 => 2.1.10
    gatsby-plugin-sharp: ^2.2.9 => 2.2.9
    gatsby-plugin-svg-sprite: ^2.0.1 => 2.0.1
    gatsby-source-filesystem: ^2.1.18 => 2.1.18
    gatsby-source-wordpress: ^3.1.12 => 3.1.12
    gatsby-transformer-sharp: ^2.2.5 => 2.2.5

لدي أكثر من 80000 من الوسائط على موقع WP الخاص بي. عند تشغيل npx gatsby develop ، أكون عالقًا بعد "END PLUGIN".

...
=== [ Fetching wordpress__TAG ] === https://[WP_REST_API]/wp-json/wp/v2/tags

Total entities : 8805
Pages to be requested : 89
 -> wordpress__TAG fetched : 8805
Fetching the wordpress__TAG took: 12408.827ms
⠀
=== [ Fetching wordpress__wp_partners ] === https://[WP_REST_API]/wp-json/wp/v2/partners
 -> wordpress__wp_partners fetched : 22
Fetching the wordpress__wp_partners took: 1268.292ms
⠀
=END PLUGIN=====================================: 377120.512ms
⠼ source and transform nodes

حاولت تعديل قيمة GATSBY_CONCURRENT_DOWNLOAD لكن لم يتغير شيء.
هل هناك طريقة للحد من استيراد كمية الوسائط؟ فمثلا :

{
  resolve: `gatsby-source-filesystem`,
  options: {
    name: `images`,
    path: `${__dirname}/src/images/uploads`,
    limit: 50,
  },
},

نفس المشكلة هنا ، تحتوي WP المستضافة ذاتيًا على وسائط 1690 ، فأنا دائمًا عالق في نهاية خطوة تنزيل الملفات البعيدة ، وأحيانًا تكون هناك وسائط واحدة مفقودة ...

تحرير: تم البناء هذه المرة بنجاح مع GATSBY_CONCURRENT_DOWNLOAD=5 yarn build ...

kvalium شكرا لتعليقك، GATSBY_CONCURRENT_DOWNLOAD=5 yarn build عملت بالنسبة لي

واجهت نفس المشكلة وتمكنت من حلها عن طريق تغيير حجم نافذة المحطة.

يرجى الرجوع إلى آخر التعليقات على # 4666.

أنا أيضا كان عندي نفس المشكلة. لقد حللت الأمر مع:

rm -r node_modules/ 
rm -r .cache
sudo chown -R login:login . 
fuser -k 8000/tcp 
yarn 
gatsby build
gatsby develop

أتمنى أن تساعد

يبدو أن هذه قضية غريبة. ها هي تجربتي معها:

  • ❌ لقد رأيت هذه المشكلة على macOS High Sierra (باستخدام iTerm)
  • ✅ بدأت في استخدام GATSBY_CONCURRENT_DOWNLOAD=50 gatsby develop واختفت المشكلة (كان هذا هو الحال لمدة أسبوعين)
  • ❌ قمت بالترقية إلى Mojave وقمت بترقية تثبيت Gatsby العالمي الخاص بي إلى 2.7.47 ثم بدأت في رؤية المشكلة مرة أخرى (باستخدام iTerm)
  • ❌ حاولت تغيير GATSBY_CONCURRENT_DOWNLOAD إلى 5
  • حاولت التخلص من .cache و node_modules
  • ❌ حاولت تغيير حجم نافذة iTerm أثناء تشغيل gatsby develop (كلاهما مع 50 و 5)
  • ❌ Ran GATSBY_CONCURRENT_DOWNLOAD=50 gatsby develop في تطبيق "Terminal" ، وليس في iTerm
  • ✅ بعد أسبوعين حاولت استخدام GATSBY_CONCURRENT_DOWNLOAD=50 gatsby develop في iTerm وقمت بتغيير حجم النافذة عدة مرات أثناء العملية ونجحت.

اعتقدت قبل الأوان أنني كنت أركض مع ذلك الأخير ولكن بعد ذلك تم تعليقه. نأمل أن يساعد هذا الآخرين. لا يزال يبدو أن هذا لم يتم تسميته تمامًا ولكننا نحققه ببطء ولكن بثبات.

تحديث: اليوم هذا العمل بالنسبة لي. لست متأكدًا مما إذا كان ذلك بسبب أنني قمت بتغيير حجم نافذة iTerm في النقطة الصحيحة من العملية أو لأنني شاهدتها تنتقل من 93٪ على طول الطريق إلى 100٪ ولكن شيئًا ما كان مختلفًا هذه المرة.

إضافية لاستخدام GATSBY_CONCURRENT_DOWNLOAD = 5 ، أضف الكود التالي إلى ملف gatsby-node.js

// التدويل
الصادرات.onPostBuild = () => {
ChildProcess.execSync ("ps aux | grep jest | grep -v grep | awk '{print $ 2}' | xargs kill")
console.log ("نسخ المحلية")
fs.copySync (path.join (__ dirname، '/ src / locales')، path.join (__ dirname، '/ public / locales))
}

532314892 @ bradydowling :

لست متأكدًا مما إذا كان ذلك بسبب أنني قمت بتغيير حجم نافذة iTerm في النقطة الصحيحة

أثناء مواجهة نفس المشكلة ، قمت بتغيير حجم نافذة iTerm الخاصة بي و bam - استمرت أيضًا فجأة. لا أعرف ما إذا كانت هذه مصادفة جامحة أم ...

bradydowlingdavegregg WOAH هذا هو واحد غريب. أدى تغيير حجم نافذة iTerm الخاصة بي إلى الحيلة.

TylerBarnes مهما كان هذا ، فأنا أقترح أنه ليس خاصًا بـ Wordpress. أنا لا أستخدم أي شيء متعلق بـ Wordpress على الإطلاق.

@ beauhankins ماذا عنك؟

beauhankinsdavegreggbradydowling هي أي واحد منكم قادرة على المشاركة الريبو حيث يحدث هذا؟ يبدو هذا غريبًا حقًا أن تغيير حجم النافذة الطرفية يعمل على حل المشكلة.

TylerBarnes يا هذا هو الريبو حيث كنت أراه. لم أتطرق إليها منذ قليل.


ملاحظة جانبية: كيف تتعامل مع موقف تقوم فيه باستنساخ موقع Gatsby بإصدار أقدم من Gatsby أكثر مما يتم تثبيته حاليًا بواسطة CLI؟

كنت أقوم بتشغيل commends w / في VS code terminal (أستخدم bash). كان الأمر يستغرق إلى الأبد وكما هو مقترح أعلاه ، خرجت من وضع ملء الشاشة وعمل.

bradydowling شكرا لتقاسم الريبو الخاص بك! لاستخدام إصدارات أقدم من Gatsby من cli ، يمكنك إنشاء نص برمجي npm للتطوير والبناء.

{
  "scripts": {
    "develop": "gatsby develop",
    "build": "gatsby build"
  }
} 

ثم تشغيل npm run develop أو yarn develop سيستخدم الإصدار المحلي في مشروعك.

نحن نحقق في هذه المشكلة ولكن في غضون ذلك ، قد يتمكن أي شخص يعاني من المشكلة من التغلب عليها من خلال تشغيل CI=1 yarn build ، حيث يجب أن يستخدم ذلك مكتبة مراسلين مختلفة وراء الكواليس. إذا جربت ذلك ونجح فيرجى إخبارنا!

dustinhorton :

الإصدار 2 @ https://github.com/dustinhorton/gatsby-v2-issue. تم البناء لحوالي 50 دقيقة في هذه المرحلة.

Fwiw. أدرك أن هذا تم نشره منذ حوالي عام ، وقد تغير غاتسبي بشكل كبير منذ ذلك الحين. عند تشغيله على جهازي (وتعيين إصدار gatsby على * في package.json) يبدو أن الإنشاء قد اكتمل في حوالي 2000 ثانية (حوالي 33 دقيقة).
بالإضافة إلى ذلك ، عند ترقية cli ، يوجد الآن شريط تقدم ، مما يُحدث فرقًا كبيرًا من حيث المدة التي "يشعر بها" ، نظرًا لأنك تحصل على حلقة ملاحظات أكثر واقعية.

تستغرق خطوة تحديد المصدر كل هذا الوقت تقريبًا (1968/1975 ثانية). تحميل الملفات البعيدة هو أكثر من ذلك (1845 ثانية).

هذا لا يفاجئني عندما أنظر إلى رحلة واحدة ذهابًا وإيابًا إلى هذا الخادم:

# Starting requestInQueue, _concurrentRequests= 10
@ requestInQueue for 75 tasks { concurrent: 10 } { id: 'url' }
@ Fetch http://dustinhorton.com/gatsby-wp/wp-json/wp/v2/media?per_page=100&page=4: 2587.339ms
@ Fetch http://dustinhorton.com/gatsby-wp/wp-json/wp/v2/media?per_page=100&page=10: 2661.584ms
@ Fetch http://dustinhorton.com/gatsby-wp/wp-json/wp/v2/media?per_page=100&page=8: 2695.937ms
@ Fetch http://dustinhorton.com/gatsby-wp/wp-json/wp/v2/media?per_page=100&page=2: 2738.339ms
@ Fetch http://dustinhorton.com/gatsby-wp/wp-json/wp/v2/media?per_page=100&page=6: 2853.199ms

يستغرق كل طلب من 2 إلى 4 ثوانٍ تقريبًا. تستغرق الصفحات الـ 75 التي تم جلبها في البداية أثناء الاستكشاف 18 ثانية إجمالاً (!). لدي اتصال سريع وأستعيد هذا التوقيت باستخدام أداة wget بسيطة.

لذلك ستحاول أطول خطوة تنزيل حوالي 7500 مورد. يستغرق النظر في طلب واحد من 2 إلى 4 ثوانٍ ، لست متفاجئًا أن الأمر يستغرق كل هذا الوقت.

ومع ذلك ، ألاحظ بعض التوقفات أثناء فترة التنزيل الرئيسية البالغة 1845 ثانية. لست متأكدًا مما إذا كان هذا هو مجرد الخادم الذي يخنق البيانات أم لا (لقد قمت بتعيين التزامن على 5).

لقد حاولت تذبذب عرض الجهاز (أنا على xfce linux ، fwiw) وبينما تزامن ذلك أحيانًا مع التقدم للأمام ، أنا مقتنع الآن أن هذا مجرد مصادفة أكثر من السببية.

خلاصة القول: بينما يمكنني إعادة تنزيل التنزيل البطيء والتقدم "المتوقف" على ما يبدو ، تشير جميع الدلائل حاليًا إلى أن سبب ذلك يرجع إلى حد كبير إلى انتظار استجابة الخادم. بالإضافة إلى ذلك ، لا يبدو أن عرض الجهاز يؤثر على ذلك.

ومع ذلك: هناك احتمال أن يتعطل الإخراج الطرفي بطريقة ما أثناء تحديث شريط التقدم عند عرض معين للغاية. في حين أن هذا غير مرجح ، إلا أنه ليس مستحيلاً. ومن ثم فإننا نحتاج حقًا إلى نسخة يمكن أن نديرها بأنفسنا (لذلك لا يوجد مصادقة). ويفضل أن يكون ذلك الذي لا يعتمد على خادم بعيد ، لأنني لا أريد أن أطرق الخادم.

سأقوم بتحديث الملصقات الخاصة بهذه المشكلة وفقًا لذلك.

لم يعد Repro المنشور في https://github.com/gatsbyjs/gatsby/issues/6654#issuecomment -438667221 بواسطة njmyers موجودًا بعد الآن

يتطلب الريبو المنشور في https://github.com/gatsbyjs/gatsby/issues/6654#issuecomment -562607399 بواسطة bradydowling مجموعة من الأذونات التي لا

@ Fetch http://topazandsapphire.com/wp-json/wp/v2/media?per_page=100&page=7: 25025.257ms
@ Fetch http://topazandsapphire.com/wp-json/wp/v2/media?per_page=100&page=4: 27791.269ms
@ Fetch http://topazandsapphire.com/wp-json/wp/v2/media?per_page=100&page=2: 37817.874ms
@ Fetch http://topazandsapphire.com/wp-json/wp/v2/media?per_page=100&page=5: 38056.989ms
@ Fetch http://topazandsapphire.com/wp-json/wp/v2/media?per_page=100&page=3: 38446.504ms
@ Fetch http://topazandsapphire.com/wp-json/wp/v2/media?per_page=100&page=6: 43799.842ms

لا تُظهر خطوة تحديد المصدر هذه في الواقع أي مؤشر تقدم باستثناء الخطوات التي يتم تسجيلها في الدوارة والخطوات العرضية ، ولا تزال تستغرق بضع دقائق ، لذلك ربما يمكننا على الأقل إظهار نوع من مؤشرات التقدم إذا كان ذلك منطقيًا.

بالإضافة إلى ذلك ، ربما قد يكون من المفيد الإشارة إلى متوسط ​​الوقت اللازم لجلب أحد الموارد ، لأن هذا مؤشر على سبب بطء "Gatsby" ، في حين أن السبب الحقيقي هو رحلة الذهاب والإياب.

في هذا الريبو ، استغرق حتى تنزيل 589 ملفًا بعيدًا حوالي 5 دقائق ، مع توقف شريط التقدم غالبًا دون سبب واضح.

بعد بدء التشغيل ، فشل الإنشاء بالنسبة لي لأن الملفات مفقودة.

pvdz سأضطر إلى اللعب مع هذا مرة أخرى (لقد

ولكن لتلخيص منشورك ، هل تقول أن بعض خطوات (التنزيل) تستغرق وقتًا طويلاً جدًا ويجب أن ننتظر وقتًا أطول حتى تكتمل؟

bradydowling حسنًا ، يبدو الأمر كذلك ، نعم. :)

FTR: لقد تتبعت المورد الذي يجمع قليلاً. لتسليط بعض الضوء على التوقيت ؛

Fetch time for http://topazandsapphire.com/wp-content/uploads/2016/01/IMG_6084.jpg: 15605.630ms
Started actually fetching http://topazandsapphire.com/wp-content/uploads/2016/01/IMG_6036.jpg
Fetch time for http://topazandsapphire.com/wp-content/uploads/2016/01/IMG_6051.jpg: 6447.272ms
Started actually fetching http://topazandsapphire.com/wp-content/uploads/2016/01/IMG_6034.jpg
Fetch time for http://topazandsapphire.com/wp-content/uploads/2016/01/IMG_6045.jpg: 6944.355ms
Started actually fetching http://topazandsapphire.com/wp-content/uploads/2016/01/IMG_6029.jpg
Fetch time for http://topazandsapphire.com/wp-content/uploads/2016/01/IMG_6036.jpg: 6401.541ms
Started actually fetching http://topazandsapphire.com/wp-content/uploads/2016/01/IMG_6027.jpg

هذه ملفات بحجم 6 ميغا بايت راجع للشغل. أنا على اتصال 250 ميجابت في الثانية وهو أمر جيد للتعامل مع تلك الأسرع من 1 ميجابايت ولكن لا يفاجئني أنه يفجر أوقات التنزيل. لن يؤدي أي قدر من تغيير حجم cli إلى تسريع ذلك ؛)

مثير للاهتمام. هذه مجرد مدونة شخصية قياسية من WordPress مستضافة على EC2 ، لذا فهي ليست كتثبيت ضخم. ربما يكون هذا بسبب أن كل هذه الطلبات تثقل كاهل المضيف. أو ، لست خبيرًا في WordPress ، ولكن ربما يكون هناك نوع من حد معدل WP القياسي على مكالمات REST API التي يمكن أن تحدث؟ أنا أوافق أيضًا على افتراض أن هذا السلوك ليس فريدًا في هذا الموقع.

ربما يكون هذا بسبب أن كل هذه الطلبات تثقل كاهل المضيف.

هذا هو تخميني (أو شيء من هذا القبيل في الملعب). لكنني أستكشف القليل من الهندسة المعمارية الخاصة بنا للتحقق مما إذا كنا نفقد الكفاءة من خلال التجريدات. ولكن بالنظر إلى أنني أستطيع تقليد معظم الأوقات التي يتم الإبلاغ عنها باستخدام تجعيد الشعر / تجعيد الشعر العادي ، أشك في وجود الكثير هناك.

لذا فقد استبدلت بتات got.stream() باستخدام برنامج تنزيل خام غبي:

    let r = ""
    require("http").get(url, res =>
      res
        .on("data", m => (r += m))
        .on("end", () => {
          console.timeEnd("$$ Fetch time for " + url)
          resolve(r)
        })
    )
$ Started actually fetching http://topazandsapphire.com/wp-content/uploads/2016/05/IMG_5260.jpg
$$ Fetch time for http://topazandsapphire.com/wp-content/uploads/2016/09/TRAVEL-LEISURE-2-copy.png: 1003.535ms
$ Started actually fetching http://topazandsapphire.com/wp-content/uploads/2016/05/International-Travel-Topaz-Sapphire.png
$$ Fetch time for http://topazandsapphire.com/wp-content/uploads/2016/09/IMG_4606.jpg: 3174.126ms
$ Started actually fetching http://topazandsapphire.com/wp-content/uploads/2016/05/Brunch-Topaz-Sapphire-2.png
$$ Fetch time for http://topazandsapphire.com/wp-content/uploads/2016/09/IMG_4647.jpg: 9521.157ms
$ Started actually fetching http://topazandsapphire.com/wp-content/uploads/2016/05/IMG_6978.jpg
$$ Fetch time for http://topazandsapphire.com/wp-content/uploads/2016/05/International-Travel-Topaz-Sapphire.png: 3611.910ms

لذا ، نعم ، أنا متأكد من أن التأخيرات الطويلة (في هذه الحالة على الأقل) ناتجة عن التنزيل. لذلك ربما يكون أفضل رهان لدينا هو تحسين التعليقات أثناء انتظار التنزيل :)

يقول الكثير والكثير من الأشخاص إن تغيير حجم النوافذ الطرفية (لأي سبب غريب) يحل عملية التطوير العالقة على "عقد المصدر وتحويل".

للأسف ، لا يعد هذا حلاً عند استخدام WSL. عالق مع عقد "المصدر وتحويل" محليًا في البناء وكذلك قيد التطوير. إن إنشاءات Netlify تعمل ولكن التنمية المحلية أصبحت مستحيلة.

Vacilando ، هل يمكنك تصحيح أخطاء بعض الروابط التي يتم تنزيلها لموقعك أثناء البحث عن مصادر واختبار ما إذا كان يتم تنزيلها سريعًا يدويًا؟ كما ذكرت أعلاه ، هناك مشكلة كبيرة أراها وهي أن بعض مضيفي wp هم ببساطة بطيئون للغاية.

لذلك إذا كان المضيف بطيئًا وكان هناك الكثير من المحتوى لتنزيله ، فحينئذٍ ستستغرق هذه الخطوة الكثير من الوقت لأن هذا هو كل ما يجب القيام به في هذه الخطوة ؛ اكتشف المحتوى وقم بتنزيله :)

إذا كنت قد أكدت أن المحتوى نفسه قد تم تنزيله في جزء صغير من الخطوة بأكملها ، فيرجى إعادة وضع دائرة هنا. في هذه الحالة ، سيكون التراجع مفيدًا للغاية :)

ربما في عالم مثالي يمكنك تمرير علم إلى غاتسبي يخبأ
تنزيل أصول الموقع حتى لا يتم تكرار ذلك بشكل متكرر.

الحل الأمثل الآخر هو السماح لعلم يحدد نوعًا ما
تحديد معدل أو تقييد تنزيل الأصول حتى لا ينهار
المضيف.

أي أفكار حول هاتين الفكرتين؟

في الخميس ، 19 ديسمبر 2019 ، 6:09 مساءً Peter van der Zee [email protected]
كتب:

Vacilando https://github.com/Vacilando يمكنك تصحيح بعض الروابط
يتم تنزيلها لموقعك أثناء تحديد المصادر والاختبار يدويًا
سواء تم تنزيلهم بسرعة؟ كما ذكرت أعلاه ، مشكلة كبيرة واحدة أنا
الرؤية هي أن بعض مضيفات wp هي ببساطة بطيئة للغاية.

لذلك إذا كان المضيف بطيئًا وكان هناك الكثير من المحتوى لتنزيله ، إذن نعم
ستستغرق هذه الخطوة وقتًا طويلاً لأن هذا هو كل ما ينبغي القيام به
هذه الخطوة؛ اكتشف المحتوى وقم بتنزيله :)

إذا كنت قد أكدت أن المحتوى نفسه يتم تنزيله في جزء صغير من ملف
خطوة كاملة ، يرجى إعادة الدائرة هنا. في هذه الحالة سيكون repro
مفيدة للغاية :)

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/gatsbyjs/gatsby/issues/6654؟
أو إلغاء الاشتراك
https://github.com/notifications/unsubscribe-auth/ABS4AU7GCV4YMZQH6R37BSDQZP5L5ANCNFSM4FLHT3TQ
.

Bradydowling جزء من ذلك موجود بالفعل بالفعل. يمكنك تعيين متغير env GATSBY_CONCURRENT_DOWNLOAD لتكوين حد الطلبات المتزامنة. سيكون للإصدار الرئيسي التالي من gatsby-source-wordpress https://github.com/gatsbyjs/gatsby/issues/19292 مزيد من التحكم في كيفية تنزيل ملفات الوسائط. بالنسبة للتخزين المؤقت ، يتم حاليًا تخزين الملفات التي تم تنزيلها مؤقتًا ، ولكن عند تغيير ملف gatsby - *. js ، فإنه يقوم حاليًا بمسح ذاكرة التخزين المؤقت لمنع ذاكرة التخزين المؤقت التي لا معنى لها من التسبب في أخطاء غير متوقعة. هذه مشكلة أساسية بدلاً من أن تكون محددة gatsby-source-wordpress ، ولكن يتم دائمًا العمل لتحسين ذاكرة التخزين المؤقت لـ Gatsby.

يجب أن تعمل واجهة برمجة تطبيقات الوظائف جزئيًا (# 19831) على إصلاح مشكلة التخزين المؤقت هذه.

يا رأيت قليلا حول GATSBY_CONCURRENT_DOWNLOAD بالقرب من القمة. من تجربتي ، لم يساعد ذلك ، لذا أعتقد أن اقتراحي كان نحو المزيد من التحكم الدقيق مثل mb لكل ثانية / متر / ساعة أو شيء من هذا القبيل. ربما أقول مجرد هراء.

bradydowling أنا أبحث في إضافة طلبات إعادة المحاولة مع التراجع الأسي بالإضافة إلى إضافة إعداد اختياري للحد الأقصى للطلبات في الثانية للحالات التي لا يعمل فيها بشكل جيد بما فيه الكفاية.

مرحبا!

لقد ساد الهدوء هذه القضية. الهدوء المخيف. 👻

نتلقى الكثير من المشكلات ، لذلك نقوم حاليًا بإغلاق المشكلات بعد 30 يومًا من عدم النشاط. لقد مرت 20 يومًا على الأقل منذ آخر تحديث هنا.
إذا فاتنا هذه المشكلة أو إذا كنت تريد إبقائها مفتوحة ، فيرجى الرد هنا. يمكنك أيضًا إضافة التصنيف "ليس قديمًا" للإبقاء على هذه المشكلة مفتوحة!
كتذكير ودي: أفضل طريقة لرؤية هذه المشكلة ، أو أي مشكلة أخرى ، يتم إصلاحها هي فتح طلب سحب. تحقق من gatsby.dev/contribute لمزيد من المعلومات حول فتح العلاقات العامة ، وقضايا الفرز ، والمساهمة!

شكرا لكونك جزء من مجتمع غاتسبي! 💪💜

سأغلق هذا الآن.

إذا كنت تعتقد أن لديك مشكلة في تحديد مصادر ووردبريس ، فيرجى التأكد من أن التأخيرات لا تنتج عن بطء خادم ووردبريس أولاً. ثم الرجاء فتح مشكلة _new_ (ولكن لا تتردد في الإشارة مرة أخرى إلى هذه المشكلة).

العدد الكبير من التعليقات يجعل من الصعب للغاية تتبع المناقشة. لذا من المرجح أن يؤدي فتح مشكلة جديدة إلى الحصول على إجابة لمشكلتك المحددة.

لقد أكدته أنا وآخرون خلال العام ونصف العام الماضيين. كانت مشكلتي الأصلية في vps مضبوطة جيدًا. njmyers كان لديه إصلاح محتمل ، أو على الأقل تحسين ، لكن لم يتمكن من الحصول على أي إجابات من

فكرت في إغلاق نفسي ، لكنني أعتقد أنه يجب أن يكون هناك كتحذير من أن موقع Wordpress الكبير إلى حد ما ليس مناسبًا لـ gatsby حتى الآن.

@ dustinhorton أفهم ذلك. هذه القضية عمرها أكثر من عام ونصف ، والأشياء تتغير بسرعة. نظرًا لكون المشكلة التي تصل إلى هذا العدد الكبير من التعليقات ، من الصعب معرفة المشكلة الفعلية بعد الآن.

image

Fwiw ، كما هو مذكور أعلاه ، راجعت آخر repros تم الإبلاغ عنه وحدد تلك ، على الأقل ، كانت ناتجة عن أجهزة التحكم عن بُعد البطيئة. إذا كان لديك نسخة مع إصدار Gatsby الحالي على جهاز تحكم عن بعد سريع ، فيرجى إبلاغي بذلك ، حتى لو كان قد تم نشره بالفعل في هذا الموضوع. أو ربما تفتح مشكلة جديدة لها (وقم بوضع علامة لي) إذا كنت تريد المزيد من التركيز عليها ، فسأترك الأمر لك :)

(_للتوضيح فقط ، أغلقنا هذه المشكلة لأنها أصبحت قديمة بعض الشيء مع وجود عدد كبير جدًا من الرسائل الخارجة عن الموضوع ، من فضلك لا تشعر أننا سحق المناقشة لأن هذا ليس هو الهدف ونحن ندرك أن عملنا لم ينته هنا ! _)

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات