تخطي إلى المحتوى
CranSEO
CranSEOإنشاء حساب

دليل تشغيل شهري لتقرير روابط خلفية

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

فريق أبحاث CranSEO ·

فتح خزنة بأعمدة وسجلات تمثل البيانات الوصفية المخزنة واللقطات

دليل التشغيل

01

السحب

ينفذ البرنامج النصي المجدول استدعاءً لواجهة برمجة التطبيقات (API) وكتابة ملف مؤرخ، على سبيل المثال links_2026-10.rds. تعمل كل من GitHub Actions أو cronR على ذلك.

02

الفحص

أفشل المهمة عند حدوث خطأ HTTP 401 أو HTTP 402، وسجّل حقل الرصيد. السحب الجزئي الصامت أسوأ من التوقف الصاخب.

03

التجميد

لا تقم أبداً بكتابة الملف الخاص بالشهر السابق فوق الملف القديم. مع استخدام renv و targets، لا تزال التقارير القديمة قابلة لإعادة التشغيل مقابل البيانات القديمة.

04

الإنشاء

يقرأ Quarto الملف المخزن وليس واجهة برمجة التطبيقات. وبالتالي، يصبح الإنشاء مجانياً وقابلاً للتكرار.

05

التعليق

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

لماذا شهري وليس يومياً

يتم تحديث الرسم البياني لدينا تقريباً مرة واحدة شهرياً. المهمة اليومية تعيد إنتاج نفس الأرقام.

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

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

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

ترس نحاسي ومفتاح يوضحون قرارات التوقيت والتشغيل اليدوي الأول

ما الذي يجب تخزينه بجانب الأرقام

نصف التقرير عبارة عن بيانات وصفية، لذا قم بتخزينه بجانب الأرقام.

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

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

أحداث جوجل المؤرخة التي تستحق الرسم عليها في رسومك البيانية

  1. Penguin 4.0

    أصبح Penguin جزءاً من الخوارزمية الأساسية ويعمل في الوقت الفعلي تقريباً.

  2. تحديث المحتوى المفيد

    بدأت عملية النشر في 25 أغسطس 2022.

  3. تحديث جوهر مارس 2024

    أُعلن عنه جنباً إلى جنب مع تغييرات سياسة المحتوى غير المرغوب فيه في مارس 2024.

  4. تحديث جوهر مارس 2025

    تحديث جوهر واسع إضافي، نُشر على مدار أسبوعين تقريباً.

تخطيط targets الحد الأدنى

ثلاثة أهداف كافية عندما يظل الخطة صغيرة.

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

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

عند فشل شيء ما، اقرأ الكود أولاً. يعني HTTP 401 أن المفتاح خاطئ أو مفقود. يعني HTTP 402 نفاد الرصيد. أي خطأ آخر يستحق التسجيل بالكامل. يغطي التفكيك تلك المراحل، ومثال الدمج هو مهمة أولى جيدة للجدولة.

معرفة أن التشغيل فشل قبل أن يلاحظها زميلك

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

اجعل المهمة تفشل بصوت عالٍ

تخرج المهمة المجدولة بحالة غير صفرية عند إرجاع المكالكة لخطأ HTTP 401 أو 402، ويحدد الجدول التشغيل كفاشل. هذا هو أرخص تنبيه لديك، ولا يحتاج إلى خدمة إضافية.

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

أرسل رسالة واحدة لكل فشل

اختر قناة واحدة للفشل، مثل بريد إلكتروني لمالك التقرير أو رسالة في دردشة الفريق. قناتان تعنيان مكانين للنظر فيهما، واحتمال أعلى ألا ينظر أحد إلى أي منهما.

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

تحقق من أن المخرج معقول

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

يمكن أن يكون الفحص بسيطاً كمدى متوقع. الهدف هو ملاحظة لقطة نصف فارغة قبل أن يصل الرسم البياني إلى العميل.

سمِّ مالكاً واحداً للتقرير

سمِّ مالكاً واحداً للتقرير. التنبيه بدون مالك يقرأه الجميع ولا يتصرف فيه أحد.

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

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

أسئلة حول تشغيله شهرياً

هل يمكن لـ cron تشغيل المهمة لي؟

نعم. إدخال cron أو مهمة CI مجدولة يشغل البرنامج النصي في يوم تختاره، وكتابة البرنامج لملفه المؤرخ. أيهما يعمل طالما يأتي المفتاح من متجر الأسرار وتكون حالة الخروج صادقة.

لماذا لا تشغله كل يوم؟

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

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

المفتاح السيئ أو المفقود يعيد HTTP 401، والرصيد الفارغ يعيد HTTP 402. يتوقف التشغيل عند أي من هذين الرمزين ويذكره. أصلح المفتاح أو املأ الرصيد من صفحة الحساب، ثم أعد التشغيل. الملف السابق يبقى دون تغيير.

هل أحتاج إلى خادم لجدولته؟

ليس بالضرورة. مشغل CI مستضاف، مثل GitHub Actions، يشغل البرنامج النصي على مؤقت دون جهازك. يمكن لـ cronR تعيين إدخال cron محلي إذا كنت تريد المهمة على جهازك الخاص.

أين يجب أن تعيش ملفات اللقطات؟

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

ماذا يدخل في الملف المساعد؟

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

سلسلة مرساة وحلقة حديدية ترمز إلى الجدول الزمني الشهري القابل للتكرار

اختيار اليوم وتشغيل المهمة الأولى يدوياً

التوقيت والتشغيل الأول يقرران ما إذا كان الجدول سيستمر. كلاهما سهل الخطأ في الشهر الأول، وكلاهما رخيص الإصلاح.

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

اختر يوماً واحداً واكتبه

يوم ثابت في الشهر، مثل أول يوم عمل بعد استقرار التحديث، أسهل في الشرح من تخمين بداية الشهر.

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

شغل المهمة الأولى يدوياً

يجب أن يكون التشغيل المجدول الأول يدوياً. شغل البرنامج النصي بنفسك، اقرأ السجل، قارن الملف بالسابق، ثم فقط سلم المؤقت.

يختبر التشغيل الأول أيضاً متجر الأسرار. المفتاح الذي يعمل على جهازك ولكنه مفقود في CI هو سبب شائع لفشل التشغيل المجدول الأول.

حافظ على صدق الملف المساعد

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

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

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

أين يعيش المؤقت

يفشل المشغل المستضاف وإدخال cron المحلي بطرق مختلفة. يمكن إيقاف المشغل المستضاف بإعداداته الخاصة، ويتوقف إدخال cron المحلي عندما يكون الجهاز في وضع السكون. تحقق مما اخترته، واختبر المؤقت مرة واحدة بجدول زمني قصير قبل الجدول الحقيقي.

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

ورقة تشغيل لأول الشهر

  • المفتاح موجود في متجر أسرار CI، وليس في المستودع
  • الرصيد أعلى من الإنفاق المتوقع (انظر صفحة الميزانية)
  • تم كتابة ملف اللقطات مع الشهر في الاسم
  • لم يتم لمس ملف الشهر السابق
  • تم إنشاء التقرير من الملفات، مع رسم أسطر التحديث