تنفيذ التدفق والمشغلات في Azure Data Factory أو Azure Synapse Analytics

ينطبق على:Azure Data Factory Azure Synapse Analytics

تلميح

جرب Data Factory في Microsoft Fabric، وهو حل تحليلي متكامل للمؤسسات. يغطي Microsoft Fabric كل شيء بدءا من حركة البيانات إلى علم البيانات والتحليلات في الوقت الحقيقي والمعلومات المهنية وإعداد التقارير. تعرف على كيفية بدء إصدار تجريبي جديد مجانا!

تحدد عملية تشغيل التدفق في Azure Data Factory وAzure Synapse مثيل تنفيذ التدفق. على سبيل المثال، لنفرض أن لديك تدفقاً يتم تنفيذه الساعة 8:00 صباحاً و9:00 صباحاً و10:00 صباحاً. في هذه الحالة، هناك ثلاثة عمليات تشغيل منفصلة من التدفق أو عمليات تشغيل مجمعة للتدفق. كل تدفق له معرّف تشغيل فريد. معرف عملية التشغيل هو GUID الذي يعرف بشكل فريد عملية تشغيل التدفق المحددة.

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

إنشاء مشغلات باستخدام واجهة المستخدم

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

Shows how to add a new trigger with UI from the pipeline editor.

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

Shows the add triggers window highlighting where to create a new trigger.

سترى نافذة تكوين المشغل، ما يسمح لك باختيار نوع المشغل.

Shows the new trigger configuration window with the type dropdown showing the various types of triggers you can create.

اقرأ المزيد حول المشغلات المجدولة والنافذة المتغيرة وحدث التخزين والحدث المخصص أدناه.

التنفيذ اليدوي (عند الطلب) باستخدام JSON

يُشار أيضًا إلى التنفيذ اليدوي للتدفق على أنه تنفيذ حسب الطلب.

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

{
    "name": "copyPipeline",
    "properties": {
        "activities": [
            {
                "type": "Copy",
                "typeProperties": {
                    "source": {
                        "type": "BlobSource"
                    },
                    "sink": {
                        "type": "BlobSink"
                    }
                },
                "name": "CopyBlobtoBlob",
                "inputs": [
                    {
                        "referenceName": "sourceBlobDataset",
                        "type": "DatasetReference"
                    }
                ],
                "outputs": [
                    {
                        "referenceName": "sinkBlobDataset",
                        "type": "DatasetReference"
                    }
                ]
            }
        ],
        "parameters": {
            "sourceBlobContainer": {
                "type": "String"
            },
            "sinkBlobContainer": {
                "type": "String"
            }
        }
    }
}

في تعريف JSON، يتخذ التدفق معلمتين: sourceBlobContainer وsinkBlobContainer. تقوم بتمرير القيم إلى هذه المعلمات في وقت التشغيل.

يمكنك تشغيل التدفق يدويًا باستخدام إحدى الطرق التالية:

  • .NET SDK
  • وحدة Azure PowerShell
  • واجهة برمجة تطبيقات REST
  • Python SDK

واجهة برمجة تطبيقات REST

توضح عينة الأمر التالية كيفية تشغيل التدفق باستخدام API REST يدويًا:

POST
https://management.azure.com/subscriptions/mySubId/resourceGroups/myResourceGroup/providers/Microsoft.DataFactory/factories/myDataFactory/pipelines/copyPipeline/createRun?api-version=2017-03-01-preview

للحصول على عينة كاملة، راجع التشغيل السريع: إنشاء مصنع بيانات باستخدام REST API.

Azure PowerShell

إشعار

نوصي باستخدام الوحدة النمطية Azure Az PowerShell للتفاعل مع Azure. راجع تثبيت Azure PowerShell للبدء. لمعرفة كيفية الترحيل إلى الوحدة النمطية Az PowerShell، راجع ترحيل Azure PowerShell من AzureRM إلى Az.

توضح عينة الأمر التالية كيفية تشغيل التدفق يدويًا باستخدام Azure PowerShell:

Invoke-AzDataFactoryV2Pipeline -DataFactory $df -PipelineName "Adfv2QuickStartPipeline" -ParameterFile .\PipelineParameters.json -ResourceGroupName "myResourceGroup"

تقوم بتمرير المعلمات في نص حمولة الطلب. يمكنك في .NET SDK وAzure PowerShell SDK وPython SDK، تمرير القيم في قاموس يقوم بدوره بتمريرها كوسيطة إلى الاستدعاء:

{
  "sourceBlobContainer": "MySourceFolder",
  "sinkBlobContainer": "MySinkFolder"
}

حمولة الاستجابة هو معرف فريد لعملية تشغيل التدفق:

{
  "runId": "0448d45a-a0bd-23f3-90a5-bfeea9264aed"
}

للحصول على عينة كاملة، راجع التشغيل السريع: إنشاء مصنع بيانات باستخدام Azure PowerShell.

.NET SDK

توضح عينة الاستدعاء التالية كيفية تشغيل التدفق باستخدام SDK.NET يدويًا:

client.Pipelines.CreateRunWithHttpMessagesAsync(resourceGroup, dataFactoryName, pipelineName, parameters)

للحصول على عينة كاملة، راجع التشغيل السريع: إنشاء مصنع بيانات باستخدام .NET SDK.

إشعار

يمكنك استخدام SDK.NET لاستدعاء التدفقات من وظائف Azure، ومن خدمات الويب الخاصة بك وهكذا.

تشغيل التنفيذ باستخدام JSON

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

  • مشغل الجدولة: مشغل يستدعي التدفق على شكل جدول ساعة الحائط.

  • مشغل نافذة التدوير: مشغل يعمل على فاصل زمني دوري، مع الاحتفاظ أيضًا بالحالة.

  • المشغل المستند إلى الحدث: مشغل يستجيب لحدث.

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

تعريف المشغل الأساسي

{
    "properties": {
        "name": "MyTrigger",
        "type": "<type of trigger>",
        "typeProperties": {...},
        "pipelines": [
            {
                "pipelineReference": {
                    "type": "PipelineReference",
                    "referenceName": "<Name of your pipeline>"
                },
                "parameters": {
                    "<parameter 1 Name>": {
                        "type": "Expression",
                        "value": "<parameter 1 Value>"
                    },
                    "<parameter 2 Name>": "<parameter 2 Value>"
                }
            }
        ]
    }
}

جدولة المشغل مع JSON

يُشغل مشغل الجدولة التدفقات على شكل جدول زمني على جدول ساعة الجدار. يدعم هذا المشغل خيارات التقويم الدورية والمتقدمة. على سبيل المثال، يدعم المشغل فترات زمنية مثل "أسبوعياً" أو "الاثنين الساعة 5:00 مساءً والخميس في الساعة 9:00 مساءً". مشغل الجدول مرن لأن نمط مجموعة البيانات غير متقن، والمشغل لا يميز بين بيانات السلاسل الزمنية وغير المتسلسلة الزمنية.

لمزيد من المعلومات حول مشغلات الجدولة، وعلى سبيل المثال، راجع إنشاء مشغل يقوم بتشغيل التدفق على شكل جدولة.

تعريف مشغل الجدولة

عند إنشاء مشغل جدولة، يمكنك تحديد الجدولة والتكرار باستخدام تعريف JSON.

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

{
  "properties": {
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": <<Minute, Hour, Day, Week, Year>>,
        "interval": <<int>>, // How often to fire
        "startTime": <<datetime>>,
        "endTime": <<datetime>>,
        "timeZone": "UTC",
        "schedule": { // Optional (advanced scheduling specifics)
          "hours": [<<0-24>>],
          "weekDays": [<<Monday-Sunday>>],
          "minutes": [<<0-60>>],
          "monthDays": [<<1-31>>],
          "monthlyOccurrences": [
            {
              "day": <<Monday-Sunday>>,
              "occurrence": <<1-5>>
            }
          ]
        }
      }
    },
  "pipelines": [
    {
      "pipelineReference": {
        "type": "PipelineReference",
        "referenceName": "<Name of your pipeline>"
      },
      "parameters": {
        "<parameter 1 Name>": {
          "type": "Expression",
          "value": "<parameter 1 Value>"
        },
        "<parameter 2 Name>": "<parameter 2 Value>"
      }
    }
  ]}
}

هام

تُعد خاصية المعلمات خاصية إلزامية لعنصر التدفقات. إذا لم تأخذ البنية الأساسية لبرنامج ربط العمليات التجارية أي معلمات، يجب تضمين تعريف JSON فارغ لخصائص "parameters".

نظرة عامة على المخطط

يوفر الجدول التالي نظرة عامة عالية المستوى لعناصر المخطط الرئيسية المرتبطة بتكرار جدولة مشغل:

خاصية JSON ‏‏الوصف
startTime قيمة date-time. بالنسبة للجداول الأساسية، تنطبق قيمة الخاصية startTime على التكرار الأول. بالنسبة للجداول المعقدة، يبدأ المشغل في وقت لا يتجاوز قيمة "startTime" المحددة.
endTime تاريخ ووقت الانتهاء للمشغل. لا يتم تنفيذ المشغل بعد تاريخ ووقت الانتهاء المُحددين. لا يمكن أن تكون قيمة الخاصية في الماضي.
"المنطقة الزمنية" المنطقة الزمنية. للحصول على قائمة بالمناطق الزمنية المدعومة، راجع إنشاء مشغل يقوم بتشغيل تدفق وفقًا لجدول زمني.
التكرار عنصر التكرار الذي يُحدد قواعد التكرار للمشغل. يُدعم عنصر التكرار "التردد" و"الفاصل الزمني" و"endTime"و "count"و"schedule" "elements". عند تعريف عنصر التكرار، يكون عنصر "frequency" مطلوباً. تُعد العناصر الأخرى لعناصر التكرار اختيارية.
"التردد" وحدة التردد التي يتكرر فيها المشغل. تتضمن القيم المعتمدة "دقيقة" و "ساعة" و "يوم" و "أسبوع" و "شهر".
الفاصل الزمني عدد صحيح موجب يشير إلى الفاصل الزمني لقيمة التردد. تحدد قيمة التردد عدد مرات تشغيل المشغل. على سبيل المثال، إذا كان الفاصل الزمني هو 3 والتردد هو "الأسبوع"، يتكرر المشغل كل ثلاثة أسابيع.
جدول جدول التكرار للمشغل. يؤدي المشغل الذي له قيمة التردد محددة إلى تغيير تكراره استناداً إلى جدول التكرار. تحتوي خاصية "الجدول" على تعديلات لتكرار التي تستند إلى الدقائق والساعات والأيام والأسبوع وأيام الشهر ورقم الأسبوع.

مثال مشغل الجدولة

{
  "properties": {
    "name": "MyTrigger",
    "type": "ScheduleTrigger",
    "typeProperties": {
      "recurrence": {
        "frequency": "Hour",
        "interval": 1,
        "startTime": "2017-11-01T09:00:00-08:00",
        "endTime": "2017-11-02T22:00:00-08:00"
      }
    },
    "pipelines": [{
        "pipelineReference": {
          "type": "PipelineReference",
          "referenceName": "SQLServerToBlobPipeline"
        },
        "parameters": {}
      },
      {
        "pipelineReference": {
          "type": "PipelineReference",
          "referenceName": "SQLServerToAzureSQLPipeline"
        },
        "parameters": {}
      }
    ]
  }
}

المخطط الافتراضي والحدود والأمثلة

خاصية JSON النوع مطلوب القيمة الافتراضية قيم صحيحة مثال
startTime سلسلة ‏‏نعم‬ بلا ISO 8601 التاريخ والأوقات "startTime" : "2013-01-09T09:30:00-08:00"
التكرار كائن ‏‏نعم‬ بلا كائن التكرار "recurrence" : { "frequency" : "monthly", "interval" : 1 }
الفاصل الزمني رقم لا 1 1 إلى 1000 "interval":10
endTime سلسلة ‏‏نعم‬ بلا قيمة التاريخ والوقت التي تمثل وقتًا في المستقبل "endTime" : "2013-02-09T09:30:00-08:00"
جدول كائن لا بلا كائن الجدولة "schedule" : { "minute" : [30], "hour" : [8,17] }

خاصية وقت البدء

يوضح الجدول التالي كيفية تحكم خاصية "startTime" في تشغيل المشغل:

قيمة وقت البدء التكرار دون جدول التكرار بجدولة
وقت البدء في الماضي احسب وقت التنفيذ المستقبلي الأول بعد وقت البدء، وشغلها في ذلك الوقت.

يقوم بتشغيل عمليات التنفيذ اللاحقة المحسوبة من وقت التنفيذ الأخير.

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

يقوم بتشغيل عمليات التنفيذ اللاحقة بناءً على جدول التكرار.
يكون وقت البدء في المستقبل أو الوقت الحالي يُشغل مرة واحدة في وقت البدء المحدد.

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

يقوم بتشغيل عمليات التنفيذ اللاحقة بناءً على جدول التكرار.

لنلقِ نظرة على مثال لما يحدث عندما يكون وقت البدء في الماضي، مع تكرار، ولكن لا يوجد جدول زمني. افترض أن الوقت الحالي هو الساعة 13:00 بتاريخ 08-04-2017، ووقت البدء هو الساعة 14:00 بتاريخ 07-04-2017، وتكرار كل يومين. (يتم تعريف قيمة التكرار عن طريق تعيين خاصية التردد إلى "يوم" و الخاصية الفاصل الزمني إلى 2.) لاحظ أن قيمة وقت البدء في الماضي ويحدث قبل الوقت الحالي.

في ظل هذه الظروف، يتم تنفيذ الأول في 09-04-2017 في الساعة 14:00. يحسب محرك المجدول تكرارات التنفيذ من وقت البدء. يتم تجاهل أي مثيلات في الماضي. يستخدم المشغل المثيل التالي الذي يحدث في المستقبل. في هذا السيناريو، وقت البدء هو 07-04-2017 في تمام الساعة 2:00 مساءً. ويكون المثيل التالي هو يومين من ذلك الوقت، وهو في 09-04-2017 في تمام الساعة 2:00 مساءً.

ويكون وقت التنفيذ الأول هو نفسه حتى إذا كان startTime هو الساعة 14:00 بتاريخ 05-04-2017 أو الساعة 14:00 بتاريخ 01-04-2017. بعد التنفيذ الأول، يتم حساب عمليات التنفيذ اللاحقة باستخدام الجدول. لذلك، يتم تنفيذ عمليات التنفيذ اللاحقة في يوم 11-04-2017 في تمام الساعة 2:00 مساءً، ثم في يوم 13-04-2017 في تمام الساعة 2:00 ظهراً، ثم في يوم 15-04-2017 في تمام الساعة 2:00 مساءً، وما إلى ذلك.

وأخيرا، عند عدم تعيين ساعات أو دقائق في الجدول الزمني للمشغل، يتم استخدام ساعات أو دقائق التنفيذ الأول كإعدادات افتراضية.

خاصية الجدولة

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

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

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

يصف الجدول التالي عناصر الجدول بالتفصيل:

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

لا تكون قيم اليوم حساسة لحالة الأحرف
monthlyOccurrences أيام الشهر الذي يتم تشغيل المشغل فيه. يمكن تحديد القيمة بتردد شهري فقط. - مصفوفة من الكائنات monthlyOccurrence: { "day": day, "occurrence": occurrence }
- سمة اليوم هي يوم الأسبوع الذي يتم فيه تشغيل المشغل. على سبيل المثال، monthlyOccurrencesبقيمةيومبقيمة{Sunday} تعني كل يوم أحد من الشهر. تُطلب سمة اليوم.
- سمة التكرار هي تكرار اليوم المحدد خلال الشهر. على سبيل المثال، خاصية monthlyOccurrences مع قيم اليوموالتكرار{Sunday, -1} يُقصد بها الأحد الأخير من الشهر. تُعد سمة التكرار اختيارية.
monthDays اليوم الذي يتم تشغيل المشغل فيه خلال الشهر. يمكن تحديد القيمة بتردد شهري فقط. - أي قيمة <= -1 و>= -31
- أي قيمة >= 1 و<= 31
- مصفوفة من القيم

مشغل نافذة التدوير

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

لمزيد من المعلومات حول مشغلات نافذة التدوير، وعلى سبيل المثال، راجع إنشاء مشغل نافذة التدوير.

أمثلة على جداول تكرار المشغل

يقدم هذا القسم أمثلة على جداول التكرار. وهو يركز على كائن الجدولة وعناصره.

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

مثال ‏‏الوصف
{"hours":[5]} يُشغل في الساعة 5:00 صباحاً كل يوم.
{"minutes":[15], "hours":[5]} يُشغل في الساعة 05:15 صباحاً كل يوم.
{"minutes":[15], "hours":[5,17]} يُشغل في الساعة 5:15 صباحاً و5:15 مساءً كل يوم.
{"minutes":[15,45], "hours":[5,17]} يُشغل في الساعة 5:15 صباحاً 5:45 صباحاً، 5:15 مساءً، و5:45 مساءً كل يوم.
{"minutes":[0,15,30,45]} يُشغل كل 15 دقيقة.
{hours":[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]} يُشغل كل ساعة.

يُشغل هذا المشغل كل ساعة. يتم التحكم في الدقائق بواسطة قيمة startTime عند تحديد القيمة. إذا لم يتم تحديد قيمة، يتم التحكم بالدقائق بواسطة وقت الإنشاء. على سبيل المثال، إذا كان وقت البدء أو وقت الإنشاء (أيهما ينطبق) هو 12:25 م، يتم تشغيل المشغل في 00:25، 01:25، 02:25، ...، و23:25.

تُعادل هذه الجدولة وجود مشغل بقيمة تردد "ساعة" وقيمة فاصل زمني "1"، ولا يوجد جدولة. يمكن استخدام هذا الجدول الزمني مع قيم مختلفة للترددوالفاصل الزمني لإنشاء مشغلات أخرى. على سبيل المثال، عندما تكون قيمة التردد "شهر"، يتم تشغيل الجدول مرة واحدة فقط في الشهر، بدلا من كل يوم عندما تكون قيمة التردد "يوم".
{"minutes":[0]} يُشغل كل ساعة على مدار الساعة.

يتم تشغيل هذا المشغل كل ساعة على مدار الساعة بدءًا من الساعة 12:00 صباحًا و1:00 صباحًا و2:00 صباحًا وما إلى ذلك.

تُعادل هذه الجدولة مشغل بقيمة تردد "ساعة" وقيمة startTime "صفر" دقيقة، ولا توجد جدولة ولكن تكون قيمة التردد "يوم". إذا كانت قيمة التكرار "أسبوع" أو "شهر"، تُنفذ الجدولة يومًا واحدًا في الأسبوع أو يومًا واحدًا في الشهر فقط، على التوالي.
{"minutes":[15]} يُشغل في خلال 15 دقيقة بعد كل ساعة.

يعمل هذا المشغل بعد مرور 15 دقيقة من على رأس كل ساعة بدءاً من الساعة 00:15 صباحاً و1:15 صباحاً و2:15 صباحاً وما إلى ذلك، وينتهي في الساعة 11:15 مساءً.
{"hours":[17], "weekDays":["saturday"]} يُشغل في الساعة 5:00 مساءً يوم السبت من كل أسبوع.
{"hours":[17], "weekDays":["monday", "wednesday", "friday"]} يُشغل في الساعة 5:00 مساءً يوم الاثنين والأربعاء والجمعة من كل أسبوع.
{"minutes":[15,45], "hours":[17], "weekDays":["monday", "wednesday", "friday"]} يُشغل في 5:15 مساءً و5:45 مساءً يوم الاثنين، الأربعاء، والجمعة من كل أسبوع.
{"minutes":[0,15,30,45], "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} يُشغل كل 15 دقيقة في أيام الأسبوع.
{"minutes":[0,15,30,45], "hours": [9, 10, 11, 12, 13, 14, 15, 16] "weekDays":["monday", "tuesday", "wednesday", "thursday", "friday"]} بٌشغل كل 15 دقيقة في أيام الأسبوع بين الساعة 9:00 صباحاً و4:45 مساءً.
{"weekDays":["tuesday", "thursday"]} يُشغل أيام الثلاثاء والخميس في وقت البدء المحدد.
{"minutes":[0], "hours":[6], "monthDays":[28]} يُشغل في الساعة 6:00 صباحًا في اليوم الثامن والعشرين من كل شهر (على افتراض أن قيمة التردد "شهر").
{"minutes":[0], "hours":[6], "monthDays":[-1]} يُشغل في الساعة 6:00 صباحاً في اليوم الأخير من الشهر.

لتشغيل المشغل في اليوم الأخير من الشهر، استخدم -1 بدلاً من اليوم 28 أو 29 أو 30 أو 31.
{"minutes":[0], "hours":[6], "monthDays":[1,-1]} يُشغل في الساعة 6:00 صباحاً في اليوم الأول والأخير من كل شهر.
{monthDays":[1,14]} يُشغل في اليوم الأول والرابع عشر من كل شهر في وقت البدء المحدد.
{"minutes":[0], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1}]} يُشغل يوم الجمعة الأول من كل شهر في الساعة 5:00 صباحاً.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1}]} يُشغل في يوم الجمعة الأولى من كل شهر في وقت البدء المحدد.
{"monthlyOccurrences":[{"day":"friday", "occurrence":-3}]} يُشغل يوم الجمعة الثالثة من الشهر، كل شهر، في وقت البدء المحدد.
{"minutes":[15], "hours":[5], "monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} يُشغل يوم الجمعة الأولى والأخيرة من كل شهر في تمام الساعة 5:15 صباحاً.
{"monthlyOccurrences":[{"day":"friday", "occurrence":1},{"day":"friday", "occurrence":-1}]} يُشغل في الجمعة الأولى والأخيرة من كل شهر في وقت البدء المحدد.
{"monthlyOccurrences":[{"day":"friday", "occurrence":5}]} يُشغل يوم الجمعة الخامسة من كل شهر في وقت البدء المحدد.

عندما لا يكون هناك يوم جمعة خامس في شهر ما، لا يعمل التدفق. لتشغيل المشغل في آخر يوم جمعة من الشهر، خذ بعين الاعتبار استخدام -1 بدلاً من 5 لقيمة التكرار.
{"minutes":[0,15,30,45], "monthlyOccurrences":[{"day":"friday", "occurrence":-1}]} يُشغل كل 15 دقيقة في يوم الجمعة الأخيرة من الشهر.
{"minutes":[15,45], "hours":[5,17], "monthlyOccurrences":[{"day":"wednesday", "occurrence":3}]} يُشغل في الساعة 5:15 صباحاً، والساعة 5:45 صباحاً، والساعة 5:15 مساءً، والساعة 5:45 مساءً يوم الأربعاء الثالث من كل شهر.

مقارنة نوع المشغل

يعمل مشغل نافذة التدوير ومشعل الجدولة على حد سواء على رسائل كشف أخطاء الاتصال المناسبة. كيف يختلفان؟

إشعار

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

يوفر الجدول التالي مقارنة بين مشغل نافذة التدوير ومشغل الجدولة:

صنف مشغل نافذة التدوير مشغل الجدولة
سيناريوهات طلب المعلومات مدعوم. يمكن جدولة تشغيل عمليات تشغيل التدفق للنوافذ في الماضي. ‏‏غير مدعومة. يمكن تنفيذ عمليات تشغيل التدفق في الفترات الزمنية من الوقت الحالي والمستقبل فقط.
الموثوقيه موثوقية 100٪. يمكن جدولة عمليات تشغيل التدفق لكافة النوافذ من تاريخ بدء محدد دون وجود فجوات. أقل موثوقية.
إمكانية إعادة المحاولة مدعوم. تحتوي عمليات تشغيل التدفق الفاشلة على نهج إعادة محاولة افتراضي 0، أو نهج محدد من قبل المستخدم في تعريف المشغل. إعادة المحاولة تلقائيًا عندما تفشل عمليات التدفق بسبب حدود التزامن/الخادم/التحكم بالنطاق الترددي (أي رموز الحالة 400: خطأ المستخدم، و429: طلبات كثيرة جدًا، و500: خطأ داخلي بالخادم). ‏‏غير مدعومة.
التزامن مدعوم. يمكن للمستخدمين تعيين حدود التزامن للمشغل بشكل صريح. يسمح بالقيم بين 1 و50 عملية تشغيل للتدفق تم تشغيلها بشكل متزامن. ‏‏غير مدعومة.
متغيرات النظام بالإضافة إلى @trigger().scheduledTime و@trigger().startTime، فإنه يدعم أيضاً استخدام متغيرات النظام WindowStart وWindowEnd. يمكن للمستخدمين الوصول إلى trigger().outputs.windowStartTime وtrigger().outputs.windowEndTime كمتغيرات نظام المشغل في تعريف المشغل. يتم استخدام القيم كوقت بدء النافذة ووقت انتهاء النافذة، على التوالي. على سبيل المثال، بالنسبة إلى مشغل نافذة التدوير الذي يعمل كل ساعة، للنافذة من الساعة 1:00 صباحاً إلى الساعة 2:00 صباحاً، يكون التعريف هو trigger().outputs.windowStartTime = 2017-09-01T01:00:00Z وtrigger().outputs.windowEndTime = 2017-09-01T02:00:00Z. يدعم فقط المتغيرات الافتراضية @trigger().scheduledTime و@trigger().startTime.
علاقة تدفق إلى مشغل يدعم علاقة واحد إلى واحد. يمكن تشغيل تدفق واحد فقط. يدعم العلاقات متعدد إلى متعدد. يمكن أن تقوم العديد من المشغلات ببدء تشغيل تدفق واحد. يمكن لمشغل واحد أن يطلق البنية الأساسية لبرنامج ربط العمليات التجارية المتعددة.

مشغل يستند إلى الحدث

يشغّل المشغل الذي يستند إلى حدث التدفقات استجابة لحدث. هناك نوعان من المشغلات المستندة إلى الحدث.

  • يُشغل المشغل المستند إلى حدث التخزين التدفق مقابل الأحداث التي تحدث في حساب تخزين، مثل تخزين ملف أو حذف ملف في حساب تخزين Azure Blob.
  • يقوم حدث مخصص بتشغيل العمليات والتعامل مع المقالات المخصصة في Event Grid

لمزيد من المعلومات حول المشغلات المستندة إلى الحدث، راجع مشغل حدث التخزين والمشغل المستند إلي حدث مخصص.

انظر البرامج التعليمية التالية: