مشغل المؤقت Azure Functions
توضح هذه المقالة كيفية العمل مع مشغلات المؤقت في Azure Functions. مشغل المؤقت يتيح لك تشغيل وفقاً لجدولٍ زمني.
هذه معلومات مرجعية لمطوري Azure Functions. إذا كنت جديداً على Azure Functions، فابدأ بالموارد التالية:
للحصول على معلومات عن كيفية تشغيل دالة يُشغِّلها المؤقت يدوياً، راجع تشغيل دالة لا يُشغِّلها HTTP يدوياً.
يتم توفير دعم هذا الربط تلقائياً في جميع بيئات التطوير. لا يتعين عليك تثبيت الحزمة يدوياً أو تسجيل الملحق.
توجد التعليمات البرمجية المصدر الخاصة بالروابط في مستودع azure-webjobs-sdk-extensions GitHub.
هام
تستخدم هذه المقالة علامات التبويب لدعم إصدارات متعددة من نموذج البرمجة Node.js. يتوفر نموذج v4 بشكل عام وتم تصميمه للحصول على تجربة أكثر مرونة وبديهية لمطوري JavaScript وTypeScript. لمزيد من التفاصيل حول كيفية عمل نموذج v4، راجع دليل مطور Azure Functions Node.js. لمعرفة المزيد حول الاختلافات بين v3 وv4، راجع دليل الترحيل.
تدعم Azure Functions نموذجي برمجة ل Python. تعتمد الطريقة التي تحدد بها روابطك على نموذج البرمجة الذي اخترته.
يتيح لك نموذج برمجة Python v2 تحديد الروابط باستخدام المحسنات مباشرة في التعليمات البرمجية لدالة Python. لمزيد من المعلومات، راجع دليل مطور Python.
تدعم هذه المقالة كلا نموذجي البرمجة.
مثال
يظهر هذا المثال دالة C# التي تنفذ في كل مرة تحتوي فيها الدقائق على قيمة قابلة للقسمة بمقدار خمسة. على سبيل المثال، عندما تبدأ الدالة في 18:55:00، يكون التنفيذ التالي في 19:00:00. يُمرر كائن TimerInfo
إلى الدالة.
يمكن إنشاء دالة C# باستخدام أحد أوضاع C# التالية:
- نموذج العامل المعزول: دالة C# المترجمة التي يتم تشغيلها في عملية عامل معزولة عن وقت التشغيل. عملية العامل المعزولة مطلوبة لدعم وظائف C# التي تعمل على إصدارات LTS وغير LTS .NET و.NET Framework. تستخدم
Microsoft.Azure.Functions.Worker.Extensions.*
ملحقات دالات عملية العامل المعزولة مساحات الأسماء. - نموذج قيد المعالجة: دالة C# المحولة برمجيا التي تعمل في نفس العملية مثل وقت تشغيل الوظائف. في تباين هذا النموذج، يمكن تشغيل الدالات باستخدام البرمجة النصية C#، والتي يتم دعمها بشكل أساسي لتحرير مدخل C#. تستخدم
Microsoft.Azure.WebJobs.Extensions.*
ملحقات الوظائف قيد المعالجة مساحات الأسماء.
هام
سينتهي الدعم للنموذج قيد التنفيذ في 10 نوفمبر 2026. نوصي بشدة بترحيل تطبيقاتك إلى نموذج العامل المعزول للحصول على الدعم الكامل.
//<docsnippet_fixed_delay_retry_example>
[Function(nameof(TimerFunction))]
[FixedDelayRetry(5, "00:00:10")]
public static void Run([TimerTrigger("0 */5 * * * *")] TimerInfo timerInfo,
FunctionContext context)
{
var logger = context.GetLogger(nameof(TimerFunction));
تُشغَّل الدالة المثال التالي وتُنفَّذ كل خمس دقائق. التعليق التوضيحي على الدالة @TimerTrigger
يُعرِّف الجدول باستخدام نفس تنسيق السلسلة باعتبارها تعبيرات CRON.
@FunctionName("keepAlive")
public void keepAlive(
@TimerTrigger(name = "keepAliveTrigger", schedule = "0 */5 * * * *") String timerInfo,
ExecutionContext context
) {
// timeInfo is a JSON string, you can deserialize it to an object using your favorite JSON library
context.getLogger().info("Timer is triggered: " + timerInfo);
}
يوضح المثال التالي ربط مشغل المؤقت ورمز الدالة الذي يستخدم الربط، حيث يتم تمرير مثيل يمثل المؤقت إلى الدالة . تكتب الدالة سجلاً يشير إلى ما إذا كان استدعاء هذه الدالة ناتجاً عن خطأ عند حدوث الجدولة. يعتمد المثال على ما إذا كنت تستخدم نموذج برمجة v1 أو v2 Python.
import datetime
import logging
import azure.functions as func
app = func.FunctionApp()
@app.function_name(name="mytimer")
@app.timer_trigger(schedule="0 */5 * * * *",
arg_name="mytimer",
run_on_startup=True)
def test_function(mytimer: func.TimerRequest) -> None:
utc_timestamp = datetime.datetime.utcnow().replace(
tzinfo=datetime.timezone.utc).isoformat()
if mytimer.past_due:
logging.info('The timer is past due!')
logging.info('Python timer trigger function ran at %s', utc_timestamp)
يوضح المثال التالي دالة TypeScript لمشغل المؤقت.
import { app, InvocationContext, Timer } from '@azure/functions';
export async function timerTrigger1(myTimer: Timer, context: InvocationContext): Promise<void> {
context.log('Timer function processed request.');
}
app.timer('timerTrigger1', {
schedule: '0 */5 * * * *',
handler: timerTrigger1,
});
يوضح المثال التالي دالة JavaScript لمشغل المؤقت.
فيما يلي بيانات الربط في ملفfunction.json:
{
"schedule": "0 */5 * * * *",
"name": "myTimer",
"type": "timerTrigger",
"direction": "in"
}
فيما يلي التعليمات البرمجية لدالة المؤقت في ملف run.ps1:
# Input bindings are passed in via param block.
param($myTimer)
# Get the current universal time in the default string format.
$currentUTCtime = (Get-Date).ToUniversalTime()
# The 'IsPastDue' property is 'true' when the current function invocation is later than scheduled.
if ($myTimer.IsPastDue) {
Write-Host "PowerShell timer is running late!"
}
# Write an information log with the current time.
Write-Host "PowerShell timer trigger function ran! TIME: $currentUTCtime"
السمات
تستخدم مكتبة C# قيد المعالجة TimerTriggerAttribute من Microsoft.Azure.WebJobs.Extensions بينما تستخدم مكتبة C# لعملية العامل المعزولة TimerTriggerAttribute من Microsoft.Azure.Functions.Worker.Extensions.Timer لتعريف الدالة. يستخدم البرنامج النصي C# بدلاً من ذلك ملف تكوين function.json.
خاصية السمة | الوصف |
---|---|
الجدول | تعبير CRON أو قيمة TimeSpan. يمكن استخدام TimeSpan فقط لتطبيق الوظائف الذي يعمل على خطة خدمة التطبيقات. يمكنك وضع تعبير الجدولة في أحد إعدادات التطبيق وتعيين هذه الخاصية إلى اسم إعداد التطبيق المُتضمَّن في علامات %، كـ %ScheduleAppSetting% . |
RunOnStartup | إذا true ، تُستدعى الدالة عند بدء تشغيل وقت التشغيل. على سبيل المثال، يبدأ وقت التشغيل عندما ينشط تطبيق الوظائف بعد أن يصبح خاملاً بسبب عدم النشاط. عند إعادة تشغيل تطبيق الوظائف بسبب تغييرات الوظيفة، وعندما يتم توسيع نطاق تطبيق الوظائف. استخدم بحذر. يجب أن نادرا ما يتم تعيين RunOnStartup إلى true ، خاصة في الإنتاج. |
UseMonitor | تعيين إلى true أو false للإشارة إلى ما إذا كان يجب مراقبة الجدول. تستمر مراقبة الجدول في تكرار حدوث الجدول للمساعدة على ضمان الحفاظ على الجدول الزمني بصورةٍ صحيحةٍ حتى عند إعادة تشغيل مثيلات تطبيق الوظائف. في حالة عدم التعيين صراحةً، فسيكون الإعداد الافتراضي هو true للجداول التي لها فاصل زمني للتكرار أكبر من أو يساوي دقيقةً واحدةً. بالنسبة للجداول التي تُشغَّل أكثر من مرة في الدقيقة، يكون الإعداد الافتراضي هو false . |
الديكور
ينطبق فقط على نموذج برمجة Python v2.
بالنسبة لوظائف Python v2 المعرفة باستخدام مصمم الديكور، الخصائص التالية على schedule
:
الخاصية | الوصف |
---|---|
arg_name |
اسم المتغير الذي يمثل كائن المؤقت في التعليمات البرمجية للدالة. |
schedule |
تعبير NCRONTAB أو قيمة TimeSpan. يمكن استخدام TimeSpan فقط لتطبيق الوظائف الذي يعمل على خطة خدمة التطبيقات. يمكنك وضع تعبير الجدولة في أحد إعدادات التطبيق وتعيين هذه الخاصية إلى اسم إعداد التطبيق المُتضمَّن في علامات %، كما في هذا المثال: "٪ScheduleAppSetting٪". |
run_on_startup |
إذا true ، تُستدعى الدالة عند بدء تشغيل وقت التشغيل. على سبيل المثال، يبدأ وقت التشغيل عندما ينشط تطبيق الوظائف بعد أن يصبح خاملاً بسبب عدم النشاط. عند إعادة تشغيل تطبيق الوظائف بسبب تغييرات الوظيفة، وعندما يتم توسيع نطاق تطبيق الوظائف. استخدم بحذر. يجب أن نادرا ما يتم تعيين runOnStartup إلى true ، خاصة في الإنتاج. |
use_monitor |
تعيين إلى true أو false للإشارة إلى ما إذا كان يجب مراقبة الجدول. تستمر مراقبة الجدول في تكرار حدوث الجدول للمساعدة على ضمان الحفاظ على الجدول الزمني بصورةٍ صحيحةٍ حتى عند إعادة تشغيل مثيلات تطبيق الوظائف. في حالة عدم التعيين صراحةً، فسيكون الإعداد الافتراضي هو true للجداول التي لها فاصل زمني للتكرار أكبر من أو يساوي دقيقةً واحدةً. بالنسبة للجداول التي تُشغَّل أكثر من مرة في الدقيقة، يكون الإعداد الافتراضي هو false . |
للحصول على وظائف Python المعرفة باستخدام function.json، راجع قسم التكوين.
تعليقات توضيحية
التعليق التوضيحي @TimerTrigger
على الدالة يُعرِّف الجدول schedule
باستخدام نفس تنسيق السلسلة باعتبارها تعبيرات CRON. يدعم التعليق التوضيحي الإعدادات التالية:
التكوين
ينطبق فقط على نموذج برمجة Python v1.
يوضح الجدول التالي الخصائص التي يمكنك تعيينها على الكائن الذي options
تم تمريره app.timer()
إلى الأسلوب .
الخاصية | الوصف |
---|---|
جدول | تعبير NCRONTAB أو قيمة TimeSpan. يمكن استخدام TimeSpan فقط لتطبيق الوظائف الذي يعمل على خطة خدمة التطبيقات. يمكنك وضع تعبير الجدولة في أحد إعدادات التطبيق وتعيين هذه الخاصية إلى اسم إعداد التطبيق المُتضمَّن في علامات %، كما في هذا المثال: "٪ScheduleAppSetting٪". |
runOnStartup | إذا true ، تُستدعى الدالة عند بدء تشغيل وقت التشغيل. على سبيل المثال، يبدأ وقت التشغيل عندما ينشط تطبيق الوظائف بعد أن يصبح خاملاً بسبب عدم النشاط. عند إعادة تشغيل تطبيق الوظائف بسبب تغييرات الوظيفة، وعندما يتم توسيع نطاق تطبيق الوظائف. استخدم بحذر. يجب أن نادرا ما يتم تعيين runOnStartup إلى true ، خاصة في الإنتاج. |
useMonitor | تعيين إلى true أو false للإشارة إلى ما إذا كان يجب مراقبة الجدول. تستمر مراقبة الجدول في تكرار حدوث الجدول للمساعدة على ضمان الحفاظ على الجدول الزمني بصورةٍ صحيحةٍ حتى عند إعادة تشغيل مثيلات تطبيق الوظائف. في حالة عدم التعيين صراحةً، فسيكون الإعداد الافتراضي هو true للجداول التي لها فاصل زمني للتكرار أكبر من أو يساوي دقيقةً واحدةً. بالنسبة للجداول التي تُشغَّل أكثر من مرة في الدقيقة، يكون الإعداد الافتراضي هو false . |
يشرح الجدول الآتي خصائص تكوين ربط البيانات التي عليك تعيينها في ملف function.json.
خاصية function.json | الوصف |
---|---|
النوع | يجب تعيين إلى "timerTrigger". يتم تعيين هذه الخاصية تلقائيا عند إنشاء المشغل في مدخل Microsoft Azure. |
الاتجاه | يجب التعيين إلى "داخل". يتم تعيين هذه الخاصية تلقائيا عند إنشاء المشغل في مدخل Microsoft Azure. |
الاسم | اسم المتغير الذي يمثل كائن المؤقت في التعليمات البرمجية للدالة. |
جدول | تعبير NCRONTAB أو قيمة TimeSpan. يمكن استخدام TimeSpan فقط لتطبيق الوظائف الذي يعمل على خطة خدمة التطبيقات. يمكنك وضع تعبير الجدولة في أحد إعدادات التطبيق وتعيين هذه الخاصية إلى اسم إعداد التطبيق المُتضمَّن في علامات %، كما في هذا المثال: "٪ScheduleAppSetting٪". |
runOnStartup | إذا true ، تُستدعى الدالة عند بدء تشغيل وقت التشغيل. على سبيل المثال، يبدأ وقت التشغيل عندما ينشط تطبيق الوظائف بعد أن يصبح خاملاً بسبب عدم النشاط. عند إعادة تشغيل تطبيق الوظائف بسبب تغييرات الوظيفة، وعندما يتم توسيع نطاق تطبيق الوظائف. استخدم بحذر. يجب أن نادرا ما يتم تعيين runOnStartup إلى true ، خاصة في الإنتاج. |
useMonitor | تعيين إلى true أو false للإشارة إلى ما إذا كان يجب مراقبة الجدول. تستمر مراقبة الجدول في تكرار حدوث الجدول للمساعدة على ضمان الحفاظ على الجدول الزمني بصورةٍ صحيحةٍ حتى عند إعادة تشغيل مثيلات تطبيق الوظائف. في حالة عدم التعيين صراحةً، فسيكون الإعداد الافتراضي هو true للجداول التي لها فاصل زمني للتكرار أكبر من أو يساوي دقيقةً واحدةً. بالنسبة للجداول التي تُشغَّل أكثر من مرة في الدقيقة، يكون الإعداد الافتراضي هو false . |
عندما تقوم بالتطوير محليًا، أضف إعدادات التطبيق في ملف local.settings.json في المجموعة Values
.
تنبيه
لا تقم بتعيين runOnStartup إلى true
في الإنتاج. يؤدي استخدام هذا الإعداد إلى تنفيذ التعليمات البرمجية في أوقات غير متوقعة للغاية. في بعض إعدادات التشغيل، يمكن أن تؤدي عمليات التنفيذ الإضافية هذه إلى ارتفاع تكاليف التطبيقات المستضافة في خطط الاستهلاك. على سبيل المثال، مع تمكين runOnStartup يُستدعى المشغل كلما وُسِّع تطبيق الوظائف خاصتك. تأكد من فهمك الكامل لسلوك التشغيل لدوالك قبل تمكين runOnStartup أثناء التشغيل.
راجع قسم Example للحصول على أمثلة كاملة.
الاستخدام
عند استدعاء دالة مشغل مؤقت، يُمرر كائن مؤقت إلى الدالة. JSON التالي هو مثال على تمثيل كائن المؤقت.
{
"Schedule":{
"AdjustForDST": true
},
"ScheduleStatus": {
"Last":"2016-10-04T10:15:00+00:00",
"LastUpdated":"2016-10-04T10:16:00+00:00",
"Next":"2016-10-04T10:20:00+00:00"
},
"IsPastDue":false
}
{
"schedule":{
"adjustForDST": true
},
"scheduleStatus": {
"last":"2016-10-04T10:15:00+00:00",
"lastUpdated":"2016-10-04T10:16:00+00:00",
"next":"2016-10-04T10:20:00+00:00"
},
"isPastDue":false
}
تكون الخاصية isPastDue
هي true
عندما يكون استدعاء الدالة الحالي متأخرًا عن الجدول الزمني. على سبيل المثال، قد يؤدي إعادة تشغيل تطبيق الوظائف إلى حدوث خطأ عند الاستدعاء.
تعبيرات NCRONTAB
تستخدم Azure Functions مكتبة NCronTab لتفسير تعبيرات NCRONTAB. تعبير NCRONTAB مشابه لتعبير CRON فيما عدا أنه يتضمن حقلاً سادسًا إضافيًا في البداية لاستخدامه من أجل دقة الوقت بالثواني:
{second} {minute} {hour} {day} {month} {day-of-week}
يمكن أن يحتوي كل حقل على أحد أنواع القيم التالية:
نوع | مثال | وقت التشغيل |
---|---|---|
قيمة محددة | 0 5 * * * * |
مرة كل ساعة من اليوم في الدقيقة الخامسة (5) من كل ساعة |
كل القيم (* ) |
0 * 5 * * * |
في كل دقيقة في الساعة، خلال الساعة 5 |
نطاق (عامل تشغيل- ) |
5-7 * * * * * |
ثلاث مرات في الدقيقة - في الثواني من 5 إلى 7 خلال كل دقيقة من كل ساعة من كل يوم |
مجموعة من القيم (عامل تشغيل, ) |
5,8,10 * * * * * |
ثلاث مرات في الدقيقة - عند الثواني 5 و8 و10 خلال كل دقيقة من كل ساعة من كل يوم |
قيمة الفاصل الزمني (عامل التشغيل/ ) |
0 */5 * * * * |
12 مرة في الساعة - في الثانية 0 من كل دقيقة خامسة من كل ساعة من كل يوم |
لتحديد الأشهر أو الأيام، يمكنك استخدام القيم الرقمية أو الأسماء أو اختصارات الأسماء:
- للأيام، تتراوح القيم الرقمية من 0 إلى 6، حيث تبدأ القيمة 0 ب الأحد.
- الأسماء باللغة الإنجليزية. على سبيل المثال:
Monday
،January
. - الأسماء غير حساسة لحالة الأحرف.
- يمكن اختصار الأسماء. نوصي باستخدام ثلاثة أحرف للاختصارات. على سبيل المثال:
Mon
،Jan
.
أمثلة NCRONTAB
فيما يلي بعض الأمثلة على تعبيرات NCRONTAB التي يمكنك استخدامها لتشغيل المؤقت في Azure Functions.
مثال | وقت التشغيل |
---|---|
0 */5 * * * * |
مرة كل خمس دقائق |
0 0 * * * * |
مرة واحدة في بداية كل ساعة |
0 0 */2 * * * |
مرة كل ساعتين |
0 0 9-17 * * * |
مرة كل ساعة من 9 صباحاً حتي 5 مساءً |
0 30 9 * * * |
الساعة 9:30 صباحًا كل يوم |
0 30 9 * * 1-5 |
الساعة 9:30 صباحًا في كل يوم من أيام الأسبوع |
0 30 9 * Jan Mon |
الساعة 9:30 صباحًا كل يوم اثنين من شهر يناير |
إشعار
يدعم تعبير NCRONTAB تنسيق كلٍ من الحقل الخامس و الحقل السادس. موضع الحقل السادس هو قيمة للثواني تُوضَع في بداية التعبير. إذا كان تعبير CRON غير صالح، فسيعرض Azure Portal Function Test خطأ 404، إذا كان Application Insights متصلا، تسجيل المزيد من التفاصيل هناك.
المناطق الزمنية NCRONTAB
تشير الأرقام الموجودة في تعبير NCRONTAB إلى وقت وتاريخ، وليس إلى فترة زمنية. على سبيل المثال، يشير 5 في الحقل hour
إلى 5:00 صباحاً، وليس كل 5 ساعات.
المنطقة الزمنية الافتراضية المستخدمة مع تعبيرات CRON هي التوقيت العالمي (UTC). للحصول على تعبير CRON الخاص بك استناداً إلى منطقة زمنية أخرى، قم بإنشاء إعداد تطبيق لتطبيق وظيفتك باسم WEBSITE_TIME_ZONE
.
تعتمد قيمة هذا الإعداد على نظام التشغيل والخطة التي يعمل عليها تطبيق وظيفتك.
نظام التشغيل | الخطة | القيمة |
---|---|---|
Windows | الكل | عيّن القيمة على اسم المنطقة الزمنية المطلوبة كما هو محدد في السطر الثاني من كل زوج من الأزواج المعطاة بواسطة أمر Windows tzutil.exe /L |
Linux | متميز مخصصة |
قم بتعيين القيمة على اسم المنطقة الزمنية المطلوبة كما هو موضح في قاعدة بيانات tz. |
إشعار
WEBSITE_TIME_ZONE
ولا يتم دعمها TZ
حاليا عند التشغيل على Linux في خطة الاستهلاك. في هذه الحالة، يمكن إعداد WEBSITE_TIME_ZONE
أو TZ
إنشاء مشكلات متعلقة ب SSL والتسبب في توقف المقاييس عن العمل لتطبيقك.
على سبيل المثال، يستخدم Eastern Time في الولايات المتحدة (يتم تمثيله بواسطة Eastern Standard Time
(Windows) أو America/New_York
(Linux)) حالياً UTC-05:00 خلال التوقيت القياسي وUTC-04:00 خلال التوقيت الصيفي. لتشغيل مؤقت يعمل في الساعة 10:00 صباحاً بالتوقيت الشرقي كل يوم، أنشئ إعداد تطبيق لتطبيق وظيفتك باسم WEBSITE_TIME_ZONE
، واضبط القيمة على Eastern Standard Time
(Windows) أو America/New_York
(Linux)، ثم استخدم تعبير NCRONTAB التالي:
"0 0 10 * * *"
عند استخدام WEBSITE_TIME_ZONE
، يتم ضبط الوقت وفقاً للتغييرات الزمنية في منطقة زمنية محددة، بما في ذلك التوقيت الصيفي والتغييرات في التوقيت القياسي.
TimeSpan
يمكن استخدام TimeSpan
فقط لتطبيق الوظائف الذي يعمل على خطة خدمة التطبيقات.
على عكس تعبير NCRONTAB، TimeSpan
تحدد القيمة الفاصل الزمني بين استدعاء كل دالة. عندما تكتمل إحدى الدوال بعد تشغيلها لفترةٍ أطول من الفاصل الزمني المحدد، يستدعي المؤقت الدالة على الفور مرةً أخرى.
مُعبراً عنه باعتباره سلسلة، يكون التنسيق TimeSpan
هو hh:mm:ss
عندما يكون hh
أقل من 24. عندما يكون الرقمان الأولان 24 أو أكبر، يكون التنسيق dd:hh:mm
. إليك بعض الأمثلة:
مثال | وقت التشغيل |
---|---|
"01:00:00" | كل ساعة |
"00:01:00" | كل دقيقة |
"25:00:00:00" | كل 25 يوم |
"1.00:00:00" | كل يوم |
توسعة
في حالة توسعة تطبيق الوظائف إلى مثيلات متعددة، فسيُشغَّل مثيلٌ واحدٌ فقط لدالة تشغيل مؤقت عبر جميع المثيلات. لن يتم تشغيله مرة أخرى إذا كان هناك استدعاء المعلقة لا تزال قيد التشغيل.
تطبيقات الوظائف التي تشارك Storage
إذا كنت تشارك حسابات التخزين عبر تطبيقات الوظائف التي لم تُوزَّع في خدمة التطبيق، فقد تحتاج إلى تعيين معرف مضيف صراحةً لكل تطبيق.
إصدار الدوال | الإعدادات |
---|---|
2.x (وإصدار أحدث) | متغير البيئة AzureFunctionsWebHost__hostid |
1.x | id في host.json |
يمكنك حذف قيمة التعريف أو تعيين تكوين تعريف كل تطبيق من تطبيقات الوظائف يدوياً إلى قيمة مختلفة.
يستخدم مشغل المؤقت قفل تخزين للتأكد من وجود مثيل مؤقت واحد فقط عندما ينتقل تطبيق الوظائف إلى مثيلات متعددة. إذا كان هناك تطبيقان من تطبيقات الوظائف يشتركان في نفس تكوين التعريف ويستخدم كلٌ منهما مشغل مؤقت، فسيجري تشغيل مؤقت واحد فقط.
إعادة محاولة السلوك
على عكس مشغل قائمة الانتظار، لا يعيد مُشغِّل المؤقت المحاولة بعد فشل إحدى الدوال. عندما تفشل دالة، لا تُستدعى مرةً أخرى حتى المرة التالية في الجدول الزمني.
استدعاء مشغل مؤقت يدوياً
يوفر مشغل المؤقت لـ Azure Functions خطاف ويب HTTP يمكن استدعاؤه لتشغيل الدالة يدويًا. يمكن أن يكون هذا مفيدًا للغاية في السيناريوهات التالية.
- اختبارات التكامل
- تُبدَّل الفتحات باعتبارها جزءًا من اختبار التحقق من البناء أو نشاط الإحماء
- التوزيع الأولي لدالةٍ ما لملء جدول ذاكرة التخزين المؤقت أو البحث في قاعدة بيانات على الفور
يُرجى الرجوع إلى تشغيل دالة لا يُشغِّلها HTTP يدوياً للحصول على تفاصيل عن كيفية استدعاء دالة يُشغِّلها المؤقت يدوياً.
استكشاف الأخطاء وإصلاحها
للحصول على معلومات عما يجب فعله عندما لا يعمل مُشغِّل المؤقت كما هو متوقع، راجع التحقيق في المشكلات والإبلاغ عنها مع عدم تنشيط الدوال المُشغَّلة بالمؤقت.