Azure Işlevleri için süreölçer tetikleyicisiTimer trigger for Azure Functions

Bu makalede, Azure Işlevlerinde süreölçer tetikleyicilerle nasıl çalışılacağı açıklanmaktadır.This article explains how to work with timer triggers in Azure Functions. Zamanlayıcı tetikleyicisi bir zamanlamaya göre bir işlevi çalıştırmanızı sağlar.A timer trigger lets you run a function on a schedule.

Azure işlevleri geliştiricileri için başvuru bilgileri budur.This is reference information for Azure Functions developers. Azure işlevleri'ne yeni başladıysanız, aşağıdaki kaynaklarla başlayın:If you're new to Azure Functions, start with the following resources:

Paketler-Işlevler 1. xPackages - Functions 1.x

Zamanlayıcı tetikleyicisi Microsoft. Azure. WebJobs. Extensions NuGet paketi, sürüm 2. x ' te sağlanır.The timer trigger is provided in the Microsoft.Azure.WebJobs.Extensions NuGet package, version 2.x. Paketin kaynak kodu, Azure-WebJobs-SDK-Extensions GitHub deposunda bulunur.Source code for the package is in the azure-webjobs-sdk-extensions GitHub repository.

Bu bağlama için destek, tüm geliştirme ortamlarında otomatik olarak sağlanır.Support for this binding is automatically provided in all development environments. Paketini el ile veya uzantısını kaydetmek gerekmez.You don't have to manually install the package or register the extension.

Paketler-Işlevler 2. xPackages - Functions 2.x

Zamanlayıcı tetikleyicisi Microsoft. Azure. WebJobs. Extensions NuGet paketi, sürüm 3. x ' te sağlanır.The timer trigger is provided in the Microsoft.Azure.WebJobs.Extensions NuGet package, version 3.x. Paketin kaynak kodu, Azure-WebJobs-SDK-Extensions GitHub deposunda bulunur.Source code for the package is in the azure-webjobs-sdk-extensions GitHub repository.

Bu bağlama için destek, tüm geliştirme ortamlarında otomatik olarak sağlanır.Support for this binding is automatically provided in all development environments. Paketini el ile veya uzantısını kaydetmek gerekmez.You don't have to manually install the package or register the extension.

ÖrnekExample

Dile özgü örneğe bakın:See the language-specific example:

C#örneğindeC# example

Aşağıdaki örnek, dakikada beş ile bölünebilen bir C# işlevi gösterir (örneğin, işlev 18:57:00 ' de başlıyorsa, sonraki performans 19:00:00 ' de olur).The following example shows a C# function that is executed each time the minutes have a value divisible by five (eg if the function starts at 18:57:00, the next performance will be at 19:00:00). @No__t-1 nesnesi işleve geçirilir.The TimerInfo object is passed into the function.

[FunctionName("TimerTriggerCSharp")]
public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log)
{
    if (myTimer.IsPastDue)
    {
        log.LogInformation("Timer is running late!");
    }
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}

C#betik örneğiC# script example

Aşağıdaki örnek, bir function. JSON dosyasındaki bir Zamanlayıcı tetikleyicisi bağlamasını ve bağlamayı kullanan bir C# betik işlevini gösterir.The following example shows a timer trigger binding in a function.json file and a C# script function that uses the binding. İşlev, bu işlev çağrısının kaçırılmış bir zamanlama oluşumu olup olmadığını gösteren bir günlük yazar.The function writes a log indicating whether this function invocation is due to a missed schedule occurrence. @No__t-1 nesnesi işleve geçirilir.The TimerInfo object is passed into the function.

Bu, function. JSON dosyasındaki bağlama verileri:Here's the binding data in the function.json file:

{
    "schedule": "0 */5 * * * *",
    "name": "myTimer",
    "type": "timerTrigger",
    "direction": "in"
}

C# Betik kodu aşağıda verilmiştir:Here's the C# script code:

public static void Run(TimerInfo myTimer, ILogger log)
{
    if (myTimer.IsPastDue)
    {
        log.LogInformation("Timer is running late!");
    }
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}" );  
}

F#örneğindeF# example

Aşağıdaki örnek, bir function. JSON dosyasındaki bir Zamanlayıcı tetikleyicisi bağlamasını ve bağlamayı kullanan bir F# betik işlevini gösterir.The following example shows a timer trigger binding in a function.json file and an F# script function that uses the binding. İşlev, bu işlev çağrısının kaçırılmış bir zamanlama oluşumu olup olmadığını gösteren bir günlük yazar.The function writes a log indicating whether this function invocation is due to a missed schedule occurrence. @No__t-1 nesnesi işleve geçirilir.The TimerInfo object is passed into the function.

Bu, function. JSON dosyasındaki bağlama verileri:Here's the binding data in the function.json file:

{
    "schedule": "0 */5 * * * *",
    "name": "myTimer",
    "type": "timerTrigger",
    "direction": "in"
}

F# Betik kodu aşağıda verilmiştir:Here's the F# script code:

let Run(myTimer: TimerInfo, log: ILogger ) =
    if (myTimer.IsPastDue) then
        log.LogInformation("F# function is running late.")
    let now = DateTime.Now.ToLongTimeString()
    log.LogInformation(sprintf "F# function executed at %s!" now)

Java örneğiJava example

Aşağıdaki örnek işlev her beş dakikada bir tetiklenir ve yürütülür.The following example function triggers and executes every five minutes. İşlevindeki @TimerTrigger ek açıklaması, cron ifadeleriyleaynı dize biçimini kullanarak zamanlamayı tanımlar.The @TimerTrigger annotation on the function defines the schedule using the same string format as CRON expressions.

@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);
}

JavaScript örneğiJavaScript example

Aşağıdaki örnek, bir function. JSON dosyasındaki bir Zamanlayıcı tetikleyicisi bağlamasını ve bağlamayı kullanan bir JavaScript işlevini gösterir.The following example shows a timer trigger binding in a function.json file and a JavaScript function that uses the binding. İşlev, bu işlev çağrısının kaçırılmış bir zamanlama oluşumu olup olmadığını gösteren bir günlük yazar.The function writes a log indicating whether this function invocation is due to a missed schedule occurrence. İşleve bir Zamanlayıcı nesnesi geçirilir.A timer object is passed into the function.

Bu, function. JSON dosyasındaki bağlama verileri:Here's the binding data in the function.json file:

{
    "schedule": "0 */5 * * * *",
    "name": "myTimer",
    "type": "timerTrigger",
    "direction": "in"
}

JavaScript kodu aşağıda verilmiştir:Here's the JavaScript code:

module.exports = function (context, myTimer) {
    var timeStamp = new Date().toISOString();

    if (myTimer.IsPastDue)
    {
        context.log('Node is running late!');
    }
    context.log('Node timer trigger function ran!', timeStamp);   

    context.done();
};

Python örneğiPython example

Aşağıdaki örnek, bir yapılandırma function. JSON dosyasında açıklanan bir Zamanlayıcı tetikleyicisi bağlamayı kullanır.The following example uses a timer trigger binding whose configuration is described in the function.json file. Bağlamayı kullanan gerçek Python işlevi init. Kopyala dosyasında açıklanmıştır.The actual Python function that uses the binding is described in the init.py file. İşleve geçirilen nesne, Azure. Functions. TimerRequest nesnesitüründedir.The object passed into the function is of type azure.functions.TimerRequest object. İşlev mantığı, geçerli çağrının kaçırılmış bir zamanlama oluşumunda olup olmadığını gösteren günlüklere yazar.The function logic writes to the logs indicating whether the current invocation is due to a missed schedule occurrence.

Bu, function. JSON dosyasındaki bağlama verileri:Here's the binding data in the function.json file:

{
    "name": "mytimer",
    "type": "timerTrigger",
    "direction": "in",
    "schedule": "0 */5 * * * *"
}

Python kodu aşağıda verilmiştir:Here's the Python code:

import datetime
import logging

import azure.functions as func


def main(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)

ÖzniteliklerAttributes

C# Sınıf kitaplıkları' nda timertriggerattribute' u kullanın.In C# class libraries, use the TimerTriggerAttribute.

Özniteliğin Oluşturucusu bir CRON ifadesi veya TimeSpan alır.The attribute's constructor takes a CRON expression or a TimeSpan. Yalnızca işlev uygulaması bir App Service planı üzerinde çalışıyorsa TimeSpan ' yı kullanabilirsiniz.You can use TimeSpan only if the function app is running on an App Service plan. Aşağıdaki örnek bir CRON ifadesini gösterir:The following example shows a CRON expression:

[FunctionName("TimerTriggerCSharp")]
public static void Run([TimerTrigger("0 */5 * * * *")]TimerInfo myTimer, ILogger log)
{
    if (myTimer.IsPastDue)
    {
        log.LogInformation("Timer is running late!");
    }
    log.LogInformation($"C# Timer trigger function executed at: {DateTime.Now}");
}

YapılandırmaConfiguration

Aşağıdaki tabloda, function. JSON dosyasında ve TimerTrigger özniteliğinde ayarladığınız bağlama yapılandırma özellikleri açıklanmaktadır.The following table explains the binding configuration properties that you set in the function.json file and the TimerTrigger attribute.

function. JSON özelliğifunction.json property Öznitelik özelliğiAttribute property AçıklamaDescription
typetype Yokn/a "TimerTrigger" olarak ayarlanmalıdır.Must be set to "timerTrigger". Bu özellik, Azure portal tetikleyiciyi oluşturduğunuzda otomatik olarak ayarlanır.This property is set automatically when you create the trigger in the Azure portal.
directiondirection Yokn/a "In" olarak ayarlanmalıdır.Must be set to "in". Bu özellik, Azure portal tetikleyiciyi oluşturduğunuzda otomatik olarak ayarlanır.This property is set automatically when you create the trigger in the Azure portal.
adaname Yokn/a İşlev kodundaki Timer nesnesini temsil eden değişkenin adı.The name of the variable that represents the timer object in function code.
scheduleschedule ScheduleExpressionScheduleExpression Bir cron ifadesi veya TimeSpan değeri.A CRON expression or a TimeSpan value. @No__t-0, yalnızca bir App Service planı üzerinde çalışan bir işlev uygulaması için kullanılabilir.A TimeSpan can be used only for a function app that runs on an App Service Plan. Zamanlama ifadesini bir uygulama ayarına yerleştirebilir ve bu özelliği şu örnekte gösterildiği gibi % işaretlere Sarmalanan uygulama ayarı adı olarak ayarlayabilirsiniz: "% ScheduleAppSetting%".You can put the schedule expression in an app setting and set this property to the app setting name wrapped in % signs, as in this example: "%ScheduleAppSetting%".
runOnStartuprunOnStartup RunOnStartupRunOnStartup @No__t-0 ise, çalışma zamanı başlatıldığında işlev çağrılır.If true, the function is invoked when the runtime starts. Örneğin, çalışma zamanı, işlev uygulaması eylemsizlik nedeniyle boşta kaldıktan sonra uyandığında başlatılır.For example, the runtime starts when the function app wakes up after going idle due to inactivity. işlev değişiklikleri nedeniyle uygulama yeniden başlatıldığında ve işlev uygulaması ölçeklenirken. Bu nedenle runOnStartup , özellikle üretimde true olarak ayarlandıysa nadiren gerekir.when the function app restarts due to function changes, and when the function app scales out. So runOnStartup should rarely if ever be set to true, especially in production.
useMonitoruseMonitor UseMonitorUseMonitor Zamanlamanın izlenmesi gerekip gerekmediğini belirtmek için true veya false olarak ayarlayın.Set to true or false to indicate whether the schedule should be monitored. Zamanlamayı zamanla, işlev uygulama örnekleri yeniden başlatıldığında bile zamanlamanın doğru bir şekilde tutulmasını sağlamaya yardımcı olmak için zamanlama oluşumları devam ettirir.Schedule monitoring persists schedule occurrences to aid in ensuring the schedule is maintained correctly even when function app instances restart. Açıkça ayarlanmamışsa, 1 dakikadan büyük veya ona eşit bir yinelenme aralığı olan zamanlamalar için varsayılan değer true ' dır.If not set explicitly, the default is true for schedules that have a recurrence interval greater than or equal to 1 minute. Dakikada birden çok kez tetikleyen zamanlamalar için varsayılan değer false ' dır.For schedules that trigger more than once per minute, the default is false.

Uygulama ayarları yerel olarak geliştirirken tarihinden local.settings.json dosyasında.When you're developing locally, app settings go into the local.settings.json file.

Dikkat

Üretimde true ' i runOnStartup ayarlamayı öneririz.We recommend against setting runOnStartup to true in production. Bu ayarın kullanılması, kodun son derece öngörülemeyen zamanlarda yürütülmesine neden olur.Using this setting makes code execute at highly unpredictable times. Bazı üretim ayarlarında, bu ek yürütmeler, tüketim planlarında barındırılan uygulamalar için önemli ölçüde daha yüksek maliyetlere neden olabilir.In certain production settings, these extra executions can result in significantly higher costs for apps hosted in Consumption plans. Örneğin, runOnStartup etkin olduğunda tetikleyici, işlev uygulamanız her ölçeklendirildiğinde çağrılır.For example, with runOnStartup enabled the trigger is invoked whenever your function app is scaled. RunOnStartup etkinleştirilmeden önce işlevlerinizin üretim davranışını tam olarak anladığınızdan emin olun.Make sure you fully understand the production behavior of your functions before enabling runOnStartup in production.

KullanımUsage

Bir Zamanlayıcı tetikleyicisi işlevi çağrıldığında, işleve bir Zamanlayıcı nesnesi geçirilir.When a timer trigger function is invoked, a timer object is passed into the function. Aşağıdaki JSON, Timer nesnesinin örnek bir gösterimidir.The following JSON is an example representation of the timer object.

{
    "Schedule":{
    },
    "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
}

Geçerli işlev çağırma zamanlanmadan daha sonra olduğunda IsPastDue özelliği true ' dir.The IsPastDue property is true when the current function invocation is later than scheduled. Örneğin, bir işlev uygulamasının yeniden başlatılması, çağrının kaçırılmasını sağlayabilir.For example, a function app restart might cause an invocation to be missed.

NCRONTAB ifadeleriNCRONTAB expressions

Azure Işlevleri, NCRONTAB ifadelerini yorumlamak için ncrontab kitaplığını kullanır.Azure Functions uses the NCronTab library to interpret NCRONTAB expressions. Bir NCRONTAB ifadesi, bir CRON ifadesine benzer, ancak Saniyeler içinde zaman duyarlığı için kullanılmak üzere ek bir altıncı alan içerir:An NCRONTAB exppression is similar to a CRON expression except that it includes an additional sixth field at the beginning to use for time precision in seconds:

{second} {minute} {hour} {day} {month} {day-of-week}

Her alan aşağıdaki değer türlerinden birine sahip olabilir:Each field can have one of the following types of values:

TürType ÖrnekExample TetiklendiğindeWhen triggered
Belirli bir değerA specific value "0 5 * * * *""0 5 * * * *" ss: 05:00, SS her saat (saat)at hh:05:00 where hh is every hour (once an hour)
Tüm değerler (*)All values (*) "0 * 5 * * *""0 * 5 * * *" 5: AA: 00 ' da her gün, DD 'nin saatte bir dakikası (günde 60 kez)at 5:mm:00 every day, where mm is every minute of the hour (60 times a day)
Bir Aralık (- işleci)A range (- operator) "5-7 * * * * *""5-7 * * * * *" ss: DD: 05, ss: DD: 06, ve hh: mm: 07 saatat hh:mm:05,hh:mm:06, and hh:mm:07 where hh:mm is every minute of every hour (3 times a minute)
Bir değerler kümesi (, işleci)A set of values (, operator) "5, 8, 10 * * * * *""5,8,10 * * * * *" ss: DD: 05, ss: DD: 08 ve hh: mm: 10 burada ss: DD her saatin dakikada bir (3 kez bir dakika)at hh:mm:05,hh:mm:08, and hh:mm:10 where hh:mm is every minute of every hour (3 times a minute)
Aralık değeri (/ işleci)An interval value (/ operator) "0 */5 * * * *""0 */5 * * * *" ss: 05:00, ss: 10:00, hh: 15:00 ve bu şekilde ss: 00 ' da her saat (12 kez saat)at hh:05:00, hh:10:00, hh:15:00, and so on through hh:55:00 where hh is every hour (12 times an hour)

Aylık veya gün belirtmek için sayısal değerler, adları veya adlarının kısaltmalarını kullanabilirsiniz:To specify months or days you can use numeric values, names, or abbreviations of names:

  • Gün boyunca sayısal 6 0 0 ile Pazar başladığı değerlerdir.For days, the numeric values are 0 to 6 where 0 starts with Sunday.
  • İngilizce dilinde adlarıdır.Names are in English. Örneğin: Monday, January.For example: Monday, January.
  • Adları büyük/küçük harfe duyarsızdır.Names are case-insensitive.
  • Adları kısaltılmış.Names can be abbreviated. Üç harf olduğundan önerilen kısaltması uzunluğu.Three letters is the recommended abbreviation length. Örneğin: Mon, Jan.For example: Mon, Jan.

NCRONTAB örnekleriNCRONTAB examples

Azure Işlevlerinde süreölçer tetikleyicisi için kullanabileceğiniz bazı NCRONTAB ifadeleri örnekleri aşağıda verilmiştir.Here are some examples of NCRONTAB expressions you can use for the timer trigger in Azure Functions.

ÖrnekExample TetiklendiğindeWhen triggered
"0 */5 * * * *" Beş dakikada bironce every five minutes
"0 0 * * * *" her saatin üstünde bir kezonce at the top of every hour
"0 0 */2 * * *" Her iki saatte bironce every two hours
"0 0 9-17 * * *" her saat 9 ' dan 5 ' e kadaronce every hour from 9 AM to 5 PM
"0 30 9 * * *" Her gün 9:30 saatat 9:30 AM every day
"0 30 9 * * 1-5" Her gün 9:30 saatat 9:30 AM every weekday
"0 30 9 * Jan Mon" Ocak 9:30 ' de her Pazartesiat 9:30 AM every Monday in January

NCRONTAB saat dilimleriNCRONTAB time zones

Bir CRON ifadesindeki sayılar, zaman aralığı değil, bir saat ve tarihe başvurur.The numbers in a CRON expression refer to a time and date, not a time span. Örneğin, hour alanındaki 5, her 5 saatte bir değil 5:00 ÖÖ 'a başvurur.For example, a 5 in the hour field refers to 5:00 AM, not every 5 hours.

CRON ifadeleriyle kullanılan varsayılan saat dilimi Eşgüdümlü Evrensel Saat (UTC) ' dir.The default time zone used with the CRON expressions is Coordinated Universal Time (UTC). CRON ifadenizi başka bir saat dilimine göre oluşturmak için, WEBSITE_TIME_ZONE adlı işlev uygulamanız için bir uygulama ayarı oluşturun.To have your CRON expression based on another time zone, create an app setting for your function app named WEBSITE_TIME_ZONE. Değeri, Microsoft saat dilimi dizinindegösterildiği gibi istenen saat diliminin adı olarak ayarlayın.Set the value to the name of the desired time zone as shown in the Microsoft Time Zone Index.

Örneğin, Doğu Standart saatı UTC-05:00 ' dir.For example, Eastern Standard Time is UTC-05:00. Zamanlayıcı tetikleyicinizin her gün 10:00 ' de tetiklenmesi için, UTC saat dilimi hesaplarının aşağıdaki NCRONTAB ifadesini kullanın:To have your timer trigger fire at 10:00 AM EST every day, use the following NCRONTAB expression that accounts for UTC time zone:

"0 0 15 * * *"

Veya işlev uygulamanız için WEBSITE_TIME_ZONE adlı bir uygulama ayarı oluşturun ve değeri Doğu Standart Saatiolarak ayarlayın.Or create an app setting for your function app named WEBSITE_TIME_ZONE and set the value to Eastern Standard Time. Ardından aşağıdaki NCRONTAB ifadesini kullanır:Then uses the following NCRONTAB expression:

"0 0 10 * * *"

@No__t-0 ' ı kullandığınızda, saat, belirli bir saat dilimlerinde gün ışığından yararlanma saati gibi zaman değişikliği için ayarlanır.When you use WEBSITE_TIME_ZONE, the time is adjusted for time changes in the specific timezone, such as daylight savings time.

TimeSpanTimeSpan

@No__t-0, yalnızca bir App Service planı üzerinde çalışan bir işlev uygulaması için kullanılabilir.A TimeSpan can be used only for a function app that runs on an App Service Plan.

Bir CRON ifadesinin aksine, TimeSpan değeri her bir işlev çağrısı arasındaki zaman aralığını belirtir.Unlike a CRON expression, a TimeSpan value specifies the time interval between each function invocation. Bir işlev, belirtilen aralıktan daha uzun çalıştıktan sonra tamamlandığında, süreölçer işlevi hemen yeniden çağırır.When a function completes after running longer than the specified interval, the timer immediately invokes the function again.

Bir dize olarak ifade edildiğinde, @no__t 2 ' den az olduğunda TimeSpan biçimi hh:mm:ss ' dir.Expressed as a string, the TimeSpan format is hh:mm:ss when hh is less than 24. İlk iki basamak 24 veya daha büyükse, biçim dd:hh:mm ' dır.When the first two digits are 24 or greater, the format is dd:hh:mm. İşte bazı örnekler:Here are some examples:

ÖrnekExample TetiklendiğindeWhen triggered
"01:00:00""01:00:00" her saatevery hour
"00:01:00""00:01:00" her dakikaevery minute
"24:00:00""24:00:00" 24 saatte birevery 24 hours
"1,00:00:00""1.00:00:00" Her günevery day

ÖlçeklendirmeScale-out

Bir işlev uygulaması birden çok örneğe ölçekleniyorsa, tüm örneklerde yalnızca bir Zamanlayıcı tetiklenen işlevin tek bir örneği çalıştırılır.If a function app scales out to multiple instances, only a single instance of a timer-triggered function is run across all instances.

İşlev uygulamaları paylaşım depolamasıFunction apps sharing Storage

App Service 'e dağıtılmamış işlev uygulamalarında depolama hesaplarını paylaşıyorsanız, her uygulamaya açıkça ana bilgisayar KIMLIĞI atamanız gerekebilir.If you are sharing storage accounts across function apps that are not deployed to app service, you might need to explicitly assign host ID to each app.

İşlevler sürümüFunctions version AyarSetting
2.x2.x AzureFunctionsWebHost__hostid ortam değişkeniAzureFunctionsWebHost__hostid environment variable
'in1.x Host. JSON içinde idid in host.json

Tanımlayıcı değeri atlayabilir veya her bir işlev uygulamasının tanımlayıcı yapılandırmasını farklı bir değere el ile ayarlayabilirsiniz.You can omit the identifying value or manually set each function app's identifying configuration to a different value.

Zamanlayıcı tetikleyicisi, bir işlev uygulaması birden çok örneğe ölçeklenirken yalnızca bir zamanlayıcı örneği olduğundan emin olmak için bir depolama kilidi kullanır.The timer trigger uses a storage lock to ensure that there is only one timer instance when a function app scales out to multiple instances. İki işlev uygulaması aynı tanımlayıcı yapılandırmayı paylaşıyorsa ve her biri bir Zamanlayıcı tetikleyicisi kullanıyorsa, yalnızca bir Zamanlayıcı çalışır.If two function apps share the same identifying configuration and each uses a timer trigger, only one timer runs.

Yeniden deneme davranışıRetry behavior

Sıra tetikleyicisinden farklı olarak, bir işlev başarısız olduktan sonra Zamanlayıcı tetikleyicisi yeniden denenmez.Unlike the queue trigger, the timer trigger doesn't retry after a function fails. Bir işlev başarısız olduğunda, zamanlamaya bir sonraki sefer kadar bir kez çağrılmaz.When a function fails, it isn't called again until the next time on the schedule.

Sorun gidermeTroubleshooting

Zamanlayıcı tetikleyicisi beklendiği gibi çalışmazsa yapılacaklar hakkında daha fazla bilgi için, bkz. Zamanlayıcı tarafından tetiklenen işlevlerle ilgili sorunları araştırma ve raporlama.For information about what to do when the timer trigger doesn't work as expected, see Investigating and reporting issues with timer triggered functions not firing.

Sonraki adımlarNext steps